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.
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.
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
Methoden markiert 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
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.
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