Heim > Backend-Entwicklung > C++ > Wie kann ich gleichzeitig auf mehrere asynchrone Aufgaben warten und auf ihre Ergebnisse zugreifen?

Wie kann ich gleichzeitig auf mehrere asynchrone Aufgaben warten und auf ihre Ergebnisse zugreifen?

Barbara Streisand
Freigeben: 2025-01-28 03:11:09
Original
1019 Leute haben es durchsucht

How Can I Await Multiple Asynchronous Tasks Simultaneously and Access Their Results?

Effiziente Handhabung mehrerer gleichzeitiger asynchroner Vorgänge

Dieses Beispiel zeigt, wie drei unabhängige asynchrone Vorgänge verwaltet werden – FeedCat(), SellHouse() und BuyCar() – die jeweils ein bestimmtes Objekt zurückgeben (Katze, Haus, Tesla). Der Code erfordert den Abschluss aller Vorgänge, bevor er fortfahren kann, und benötigt Zugriff auf die jeweiligen Ergebnisse.

Die optimale Lösung nutzt Task.WhenAll() für die parallele Ausführung und das Warten:

<code class="language-csharp">var catTask = FeedCat();
var houseTask = SellHouse();
var carTask = BuyCar();

await Task.WhenAll(catTask, houseTask, carTask);</code>
Nach dem Login kopieren

Nachdem Task.WhenAll() den Abschluss bestätigt hat, können Sie ganz einfach auf die einzelnen Ergebnisse zugreifen:

<code class="language-csharp">var cat = await catTask;
var house = await houseTask;
var car = await carTask;</code>
Nach dem Login kopieren

Es ist wichtig zu beachten, dass die asynchronen Funktionen „heiße“ Aufgaben (bereits initiiert) zurückgeben. Während Task.Result eine Option ist (da die Vollständigkeit garantiert ist), wird die Verwendung von await aufgrund der Lesbarkeit und der verbesserten Fehlerbehandlung im Allgemeinen bevorzugt.

Das obige ist der detaillierte Inhalt vonWie kann ich gleichzeitig auf mehrere asynchrone Aufgaben warten und auf ihre Ergebnisse zugreifen?. 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