首頁 > 後端開發 > C++ > 如何有效率地等待多個結果類型多樣的非同步任務?

如何有效率地等待多個結果類型多樣的非同步任務?

Susan Sarandon
發布: 2025-01-28 03:16:08
原創
144 人瀏覽過

>有效處理具有多種返回類型的多個異步任務

在異步編程中,經常需要幾個同時運行任務的結果,每個任務都可能返回其他數據類型。 讓我們用三個示例任務說明:

  • > feedcat():返回a對象。 Cat
  • > sellhouse():
  • >返回a對象。 House
  • > buycar():
  • 返回a對象。 Tesla
  • >在繼續之前,我們需要所有結果。雖然可以執行順序執行,但並發執行效率要高得多。 挑戰在於處理各種結果類型。

解決方案:利用

和個人等待

Task.WhenAll解決方案涉及

,它等待所有提供的任務完成。 完成後,使用

檢索單個結果:Task.WhenAll await

<code class="language-csharp">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>
登入後複製
創建一個父任務,該任務僅在完成所有子任務(

Task.WhenAllcatTask)時完成。 隨後,等待每個孩子任務單獨檢索其特定結果。 > houseTaskcarTask

以上是如何有效率地等待多個結果類型多樣的非同步任務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板