Heim >Backend-Entwicklung >C++ >Async Task vs. Async void: Wann sollten Sie eine Aufgabe zurückgeben?

Async Task vs. Async void: Wann sollten Sie eine Aufgabe zurückgeben?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-02-01 13:56:09646Durchsuche

Async Task vs. Async Void: When Should You Return a Task?

in der asynchronen Programmierung,

und Rückgabewertauswahl async Task async void Es ist üblich, in der asynchronen Programmierung

und

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

und

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

Andere Vorsichtsmaßnahmen
<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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn