Heim > Backend-Entwicklung > C++ > Wie kann ich Ergebnisse aus mehreren gleichzeitigen asynchronen Aufgaben koordinieren und abrufen?

Wie kann ich Ergebnisse aus mehreren gleichzeitigen asynchronen Aufgaben koordinieren und abrufen?

Barbara Streisand
Freigeben: 2025-01-28 03:21:07
Original
645 Leute haben es durchsucht

How Can I Coordinate and Retrieve Results from Multiple Concurrent Asynchronous Tasks?

Effiziente Handhabung mehrerer gleichzeitiger asynchroner Vorgänge und ihrer Ergebnisse

Diese Anleitung zeigt, wie Sie mehrere asynchrone Aufgaben gleichzeitig ausführen und deren individuelle Ergebnisse abrufen. Nehmen wir an, Sie haben drei unabhängige asynchrone Vorgänge, von denen jeder ein einzigartiges Ergebnis liefert. Das Ziel besteht darin, diese Aufgaben gleichzeitig auszuführen und auf die jeweiligen Ergebnisse zuzugreifen, sobald alle abgeschlossen sind.

Die Task.WhenAll-Methode bietet eine elegante Lösung. Diese Methode erstellt eine einzelne Aufgabe, die erst abgeschlossen wird, wenn alle Eingabeaufgaben abgeschlossen sind. Anschließend wird ein Array zurückgegeben, das die Ergebnisse jeder Aufgabe enthält.

Hier eine praktische Umsetzung:

<code class="language-csharp">Task<string> catTask = FeedCatAsync();
Task<bool> houseTask = SellHouseAsync();
Task<int> carTask = BuyCarAsync();

await Task.WhenAll(catTask, houseTask, carTask);

string catResult = await catTask;
bool houseResult = await houseTask;
int carResult = await carTask;</code>
Nach dem Login kopieren

In diesem Beispiel stellen catTask, houseTask und carTask Ihre asynchronen Vorgänge dar. Task.WhenAll initiiert sie gleichzeitig. Die Zeile await Task.WhenAll(...) pausiert die Ausführung, bis alle drei Aufgaben abgeschlossen sind.

Nach Abschluss können Sie auf die einzelnen Ergebnisse zugreifen, indem Sie auf jede Originalaufgabe warten. Die Ergebnisse werden in catResult, houseResult und carResult gespeichert und stehen zur weiteren Verarbeitung bereit.

Es ist wichtig, sich daran zu erinnern, dass asynchrone Methoden beim Aufruf sofort eine „heiße“ Aufgabe zurückgeben – eine, die bereits gestartet wurde. Daher müssen await (wie oben gezeigt) oder Task.Result verwenden, um die tatsächlichen Ergebnisse zu erhalten. Die Verwendung von await wird aufgrund der Klarheit und der Möglichkeiten zur Ausnahmebehandlung im Allgemeinen bevorzugt.

Das obige ist der detaillierte Inhalt vonWie kann ich Ergebnisse aus mehreren gleichzeitigen asynchronen Aufgaben koordinieren und abrufen?. 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