Heim >Backend-Entwicklung >C++ >Async Task vs. Async void: Wann sollten Sie eine Aufgabe zurückgeben?
in der asynchronen Programmierung,
und Rückgabewertauswahl async Task
async void
Es ist üblich, in der asynchronen Programmierung
zu verwenden, aber die Auswahl von async
oder await
als Rückkehrmethode ist oft verwirrend. public async Task AsyncMethod(int num)
public async void AsyncMethod(int num)
return
Task
im Allgemeinen ist die Rückgabe die erste Wahl. Damit kann der Anrufer den Fortschritt des asynchronen Betriebs verfolgen und darauf warten, dass er abgeschlossen ist. Dies ist sehr nützlich, wenn die Aufgabe angibt, dass es möglicherweise eine lange Zeit erfordert, um den Betrieb auszuführen.
return Task
zurück zu , die normalerweise für asynchrone Operationen verwendet werden, muss nicht seinen Fortschritt melden, oder der Empfänger muss nicht darauf warten, dass es abgeschlossen ist. Ein geeignetes Szenario besteht darin, mit Ereignissen umzugehen, da Ereignisverarbeitungsverfahren normalerweise nicht zurückgegeben werden. void
nicht -notwendige Schlüsselwörter
void
In einigen Fällen ist
möglicherweise nicht erforderlich. Wenn Ihre Methode beispielsweise nur einen einzelnen asynchronen Betrieb ausführt und ihren Fortschritt nicht nachverfolgen muss, können Sie die folgende Syntax verwenden:
In diesem Fall wird jedoch immer noch empfohlen, und async
zu verwenden, da sie die korrekte Behandlung von Anomalien sicherstellen, insbesondere wenn die asynchrone Operation die beispiellose Abnormalität des Anrufers wirft. await
<code class="language-csharp">public static void AsyncMethod2(int num) { Task.Factory.StartNew(() => Thread.Sleep(num)); }</code>
async
await
Methoden gelten als "Top -Level" asynchrone Operationen und haben spezielle Regeln für eine abnormale Behandlung.
Wenn die obere Methode ungewöhnlich geworfen wird, beobachtet der Anrufer es nicht immer. Verwenden Sie und
, um sicherzustellen, dass die Ausnahme in oberen und nicht -top -Level -asynchronen Methoden ordnungsgemäß behandelt werden kann.Das obige ist der detaillierte Inhalt vonAsync Task vs. Async void: Wann sollten Sie eine Aufgabe zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!