Express und Synchronisation asynchroner Aufgaben: Aufgabe.
Bei der Bearbeitung asynchroner Aufgaben in der C#-Konsole -Anwendung kann die Ausführung von Koordinationsaufgaben und das Warten auf die Fertigstellung eine Herausforderung sein. Dieser Artikel bietet eine einfache Implementierungslösung für den Betrieb mehrerer asynchroner Aufgaben und erledigt sie. herkömmliche Methoden verwenden und andere Obstruktionsmethoden, um auf alle Aufgaben zu warten. Diese Methode blockiert jedoch den Ausführungs -Thread und die ineffiziente Effizienz. Um optimierte Lösungen zu suchen, lassen Sie uns die
-Methode erörtern.task.whenall Methode
Task.WaitAll
Task.WhenAll
ist eine Wartemethode, es akzeptiert ein Task -Array als Parameter. Im Gegensatz zu blockiert es den Ausführungs -Thread nicht. Stattdessen wird eine neue Aufgabe zurückgegeben, die die Kombination aller Eingabedaten darstellt.
Beispiele implementieren
Die folgenden Beispiele für Ausführen und synchronisieren Sie mehrere asynchrone Aufgaben: Task.WhenAll
Task.WaitAll
und die asynchronen Methoden Ihrer Aufgabe. Erstellen Sie eine neue Aufgabe, und nur dann, wenn beide Eingabedaufgaben ausgeführt werden, wird die Aufgabe erledigt. Durch das Warten auf diese Kombinationsaufgabe wird der Ausführungs -Thread wiederhergestellt, nachdem alle Eingangsaufgaben abgeschlossen sind.
abnormale Behandlung Task.WhenAll
<code class="language-csharp">var task1 = DoWorkAsync(); var task2 = DoMoreWorkAsync(); await Task.WhenAll(task1, task2);</code>
eine detailliertere abnormale Behandlung. Wenn eine Eingabeaufgabe fehlschlägt, fällt auch die zurückgegebene Aufgabe aus und aggregiert eine Abnormalität der Fehleraufgabe. Wenn alle Aufgaben erfolgreich erledigt sind, befindet sich die zurückgegebene Aufgabe im Zustand DoWorkAsync
. DoMoreWorkAsync
Das obige ist der detaillierte Inhalt vonWie kann Task.WhenAll die gleichzeitige asynchrone Aufgabenausführung und -synchronisierung in C# verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!