In der asynchronen Programmierung ist der Rückgabewert der -Methode
oder einen signifikanten Effekt. In diesem Artikel werden die anwendbaren Szenen jeder Wahl untersucht. async
Task
kehren Sie zur Aufgabe zurück void
normalerweise sollte die -Methode zurückgeben. Dies ermöglicht das Aufrufen von Code diese Aufgabe und die Verfolgung ihres Fortschritts bei Bedarf. Die Hauptausnahme dieser Regel besteht darin, dass Sie eindeutig
benötigen, um den Typ zurückzugeben, z. B. mit Ereignissen.
async
kehren Sie zur void Task
await
zurück
void
Verwenden Sie die Methode Rückgabetyp
-Anormalität in der asynchronen Methode nicht im Verzug beobachtet. Sie werden eine unvorbereitete Ausnahme und können das Programm Verarbeitungsprogramm auslösen.
Betrachten Sie das folgende Beispiel:
void
async
In diesem Beispiel sind Task
und void
Schlüsselwörter nicht erforderlich, da keine expliziten Abnormalitäten ausdrücklich behandelt werden müssen. Wenn jedoch Anomalien auftreten, wird sie nicht beobachtet und kann nicht korrekt verarbeitet werden. TaskScheduler.UnobservedTaskException
<code class="language-csharp">public static async void AsyncMethod2(int num) { await Task.Factory.StartNew(() => Thread.Sleep(num)); }</code>
asynchronen Methoden zu demonstrieren, sollten Sie den folgenden Code beachten: async
await
-Verarbeitungsprogramm verarbeitet, was zu unvergneutem Verhalten führt. Best Practice
Task
Als Best Practice, es sei denn, Sie benötigen eindeutig void
, um den Typ zurückzugeben, Sie werden immer
<code class="language-csharp">static async void f() { await h(); } static async Task g() { await h(); } static async Task h() { throw new NotImplementedException(); }</code>
f
Weitere Informationen finden Sie unter Microsofts Dokument über g
/TaskScheduler.UnobservedTaskException
Best Practice:
Das obige ist der detaillierte Inhalt vonAsync/wartet: Soll ich eine Aufgabe oder eine Leere zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!