Heim > Backend-Entwicklung > C++ > Async/wartet: Soll ich eine Aufgabe oder eine Leere zurückgeben?

Async/wartet: Soll ich eine Aufgabe oder eine Leere zurückgeben?

Susan Sarandon
Freigeben: 2025-02-01 14:06:10
Original
368 Leute haben es durchsucht

Async/Await: Should I Return a Task or Void?

Der Rückgabewert der asynchronisierten Methode: Aufgabe oder void?

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

, um sie als "Top Asynchron Operation" zu markieren. Das Verhalten dieser Operationen ist anders, wenn es abnormal ist. Anders als der des Rückgabewerts wird die

-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

Beispiel für abnormale Behandlung

<code class="language-csharp">public static async void AsyncMethod2(int num)
{
    await Task.Factory.StartNew(() => Thread.Sleep(num));
}</code>
Nach dem Login kopieren
Um die Unterschiede zwischen einer abnormalen Behandlung zwischen und

asynchronen Methoden zu demonstrieren, sollten Sie den folgenden Code beachten: async await

Wenn Sie nennen, können Sie die Abnormalität beobachten und sie als andere unverarbeitete Anomalien ansehen. Wenn jedoch aufgerufen wird, wird es niemals die Abnormalitäten beobachten und vom

-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

aus der
<code class="language-csharp">static async void f()
{
    await h();
}

static async Task g()
{
    await h();
}

static async Task h()
{
    throw new NotImplementedException();
}</code>
Nach dem Login kopieren
-Methode zurückgeben. Dies stellt sicher, dass die Anomalien ordnungsgemäß behandelt werden und der Anrufer die Aufgabe auswählen und ihren Fortschritt verfolgen kann.

f Weitere Informationen finden Sie unter Microsofts Dokument über g/TaskScheduler.UnobservedTaskException Best Practice:

https://www.php.cn/link/d3ddedd99AAA150F47C2D0A55CB17898

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage