Heim >Backend-Entwicklung >C++ >Wie kann ich effizient warten und Ergebnisse aus mehreren gleichzeitigen Aufgaben in C#abrufen?
Verwaltung von gleichzeitigen Aufgaben und Ring -Ergebnissen in C#
Eine häufige Herausforderung bei der C# -Programmierung besteht darin, mehrere asynchrone Aufgaben zu behandeln, die gleichzeitig ausgeführt werden und individuelle Ergebnisse zurückgeben müssen. Dieser Artikel zeigt einen effizienten Ansatz mit Task.WhenAll
.
Hier ist ein Szenario: Stellen Sie sich drei unabhängige Aufgaben vor: Füttern einer Katze, Verkauf eines Hauses und Kauf eines Autos. Jede Aufgabe ist asynchron und erzeugt ein einzigartiges Ergebnis.
<code class="language-csharp">private async Task<Cat> FeedCat() { /* ... */ } private async Task<House> SellHouse() { /* ... */ } private async Task<Tesla> BuyCar() { /* ... */ } async Task Main() { var catTask = FeedCat(); var houseTask = SellHouse(); var carTask = BuyCar(); await Task.WhenAll(catTask, houseTask, carTask); var cat = await catTask; var house = await houseTask; var car = await carTask; }</code>
Die Task.WhenAll
-Methode initiiert alle drei Aufgaben gleichzeitig. Nachdem WhenAll
abgeschlossen ist (signalisiert alle Aufgaben abgeschlossen) können Sie das Ergebnis der einzelnen await
-Operationen sicher abrufen. Asynchrone Methoden geben implizit bereits startete Aufgaben zurück.
Während der Verwendung Task.Result
nach WhenAll
möglich ist, da der Abschluss der Aufgaben garantiert ist, wird der await
-Ansatz im Allgemeinen für die verbesserte Lesbarkeit und Robustheit in komplexeren Szenarien empfohlen.
Das obige ist der detaillierte Inhalt vonWie kann ich effizient warten und Ergebnisse aus mehreren gleichzeitigen Aufgaben in C#abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!