Code: Select all
public async Task MyAsyncMethod()
{
// do some stuff async, don't return any data
}
Code: Select all
public string GetStringData()
{
MyAsyncMethod(); // this generates a warning and swallows exceptions
return "hello world";
}
Sie sollten die Unterdrückung der Warnung nur in Betracht ziehen, wenn Sie sicher sind, dass Sie nicht auf das Asynchrone warten möchten Aufruf zur Vervollständigung und dass die aufgerufene Methode keine Ausnahmen auslöst.
Ich bin mir sicher, dass ich das nicht möchte warten, bis der Anruf abgeschlossen ist; Ich muss oder habe keine Zeit dazu. Aber der Aufruf könnte Ausnahmen auslösen.
Ich bin ein paar Mal auf dieses Problem gestoßen und bin mir sicher, dass es häufig vorkommt Problem, für das es eine gemeinsame Lösung geben muss.
Wie rufe ich sicher eine asynchrone Methode auf, ohne auf das Ergebnis zu warten?
Update:
Für Leute, die vorschlagen, ich warte einfach darauf Ergebnis: Dies ist Code, der auf eine Webanforderung an unseren Webdienst (ASP.NET-Web-API) antwortet. Das Warten in einem UI-Kontext hält den UI-Thread frei, aber das Warten in einem Web-Anfrageaufruf wartet auf den Abschluss der Aufgabe, bevor auf die Anfrage geantwortet wird, wodurch sich die Antwortzeiten ohne Grund erhöhen.