„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Asynchron/wartet in C#: Wann soll die Aufgabe gegen VID zurückgegeben werden?

Asynchron/wartet in C#: Wann soll die Aufgabe gegen VID zurückgegeben werden?

Gepostet am 2025-03-23
Durchsuche:740

Async/Await in C#: When to Return Task vs. Void?

Rückgabewert von async Methode in C# Asynchronous Programming: task oder void ?

Bei asynchroner Verwendung von C#kann die async Methode task oder void zurückgeben. Diese Auswahl ist entscheidend, da sie das Verhalten der Methode bestimmt und wie sie mit dem aufrufenden Code interagiert.

Wann return task

]

Wenn Sie den Fortschritt oder das Ergebnis einer asynchronen Operation dem Anrufer aussetzen möchten, sollten Sie normalerweise task zurückgeben. Auf diese Weise kann der Anrufer auf die Aufgabe warten und die Ausführung fortsetzen, nachdem er abgeschlossen ist. Rückkehr Task kann auch Ausnahmebehandlung und asynchrone Modi wie async-forach verwenden, wobei der Fortschritt mehrerer Aufgaben überwacht werden kann.

Wann return void

]

Der einzige geeignete Fall für die Rückkehr void aus der async -Methode ist, wenn Sie ausdrücklich die zurück brauchen, z. B. in einem Ereignishandler oder UI -Rückruf. In diesen Fällen sollte der Anrufer nicht in der Lage sein, auf die Methode zu warten, und die async und warten nicht Schlüsselwörter sind erforderlich. Vermeiden Sie Top Level

async void

method Methoden markiert

async void

haben besondere Semantik und sollten mit Vorsicht verwendet werden. Sie repräsentieren asynchrone Operationen auf höchster Ebene und haben unterschiedliche Regeln für Ausnahmebehandlungen als Methoden, die Aufgaben zurückgeben. Ausnahmen in der obersten Ebene void Methode werden als nicht behandelte Ausnahmen behandelt und können zu unerwartetem Verhalten führen. zum Beispiel den folgenden Code betrachten:

public static async void asyncMethod2 (int num) { wartet task.factory.startNew (() => thread.sleep (num)); }
public static async void AsyncMethod2(int num)
{
    await Task.Factory.StartNew(() => Thread.Sleep(num));
}

Es verhindert, dass der Anrufer auf die Methode wartet und seinen Fortschritt überwacht. Ausnahmen in der

-Methode werden nicht behandelt und können dazu führen, dass sich die Anwendung abnormal verhalten.
  1. Es ist am besten, die
  2. async task
  3. -Methode und die
auf das Schlüsselwort

zu erwarten, um die korrekte Ausnahmeregelung zu gewährleisten und die Fähigkeit zu verfolgen und zu verwalten, asynchrone Operationen zu verfolgen und zu verwalten.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3