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>
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>
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!