Heim > Backend-Entwicklung > C++ > Async/Await in C#: Aufgabe direkt zurückgeben oder warten?

Async/Await in C#: Aufgabe direkt zurückgeben oder warten?

Mary-Kate Olsen
Freigeben: 2025-01-04 05:29:39
Original
285 Leute haben es durchsucht

Async/Await in C#: Return Task Directly or Await?

Konsequenzen der Rückkehr vs. Warten am Ende einer asynchronen Methode

In einer asynchronen Methode, die eine Aufgabe zurückgibt, haben Sie zwei Möglichkeiten zur Bearbeitung nachfolgender asynchroner Aufrufe:

Option A: Aufgabe zurückgeben Direkt

Task FooAsync()
{
    return BazAsync();
}
Nach dem Login kopieren

Option B: Auf die Aufgabe warten und zurückkehren

async Task BarAsync()
{
    await BazAsync();
}
Nach dem Login kopieren

Konsequenzen von Option A (Direkt zurückkehren)

  • Vorteil: Erfordert weniger Boilerplate Code und erstellt eine Aufgabe weniger.
  • Nachteil:Ausnahmen, die innerhalb der synchronen Methode ausgelöst werden, werden synchron zugestellt.

Diese Option ist geeignet, wenn Ihre Methode Folgendes ausführt: kleiner synchroner Arbeitsaufwand und ruft dann eine einzelne asynchrone Methode auf.

Konsequenzen von Option B (Warten und Zurückkehren)

  • Vorteil: Ausnahmen werden asynchron behandelt.
  • Nachteil: Ausführlicherer Code und erstellt eine zusätzliche Aufgabe.

Diese Option ist vorzuziehen wenn:

  • Ihre Methode muss nach dem Aufruf von BazAsync() zusätzliche asynchrone Vorgänge ausführen.
  • Sie möchten in der asynchronen Methode ausgelöste Ausnahmen asynchron behandeln.

Hinweis: Sie können eine Aufgabe nicht direkt zurückgeben, wenn die Methode selbst als asynchron deklariert ist. Dies würde zu einem Rückgabetyp Task führen, der nicht zulässig ist.

Zusammenfassend hängt die Entscheidung zwischen direkter Rückgabe oder Warten von den spezifischen Anforderungen Ihrer Methode ab. Berücksichtigen Sie bei dieser Auswahl die Codestruktur, das Potenzial für Ausnahmen und das gewünschte Verhalten Ihrer Anwendung.

Das obige ist der detaillierte Inhalt vonAsync/Await in C#: Aufgabe direkt zurückgeben oder warten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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