首頁 > 後端開發 > C++ > 我如何同時等待多個異步任務並訪問其結果?

我如何同時等待多個異步任務並訪問其結果?

Barbara Streisand
發布: 2025-01-28 03:11:09
原創
984 人瀏覽過

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

高效處理多個並發異步操作

此示例演示如何管理三個獨立的異步操作 - FeedCat()SellHouse()BuyCar() - 每個操作返回一個不同的對象(分別為 Cat、House、Tesla)。 該代碼要求在繼續之前完成所有操作,並且需要訪問每個操作的結果。

最佳解決方案利用Task.WhenAll()進行並行執行和等待:

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

await Task.WhenAll(catTask, houseTask, carTask);</code>
登入後複製

Task.WhenAll()確認完成後,可以輕鬆訪問各個結果:

<code class="language-csharp">var cat = await catTask;
var house = await houseTask;
var car = await carTask;</code>
登入後複製

值得注意的是,異步函數返回“熱”任務(已經啟動)。雖然 Task.Result 是一個選項(因為保證完成),但通常首選使用 await,因為它具有可讀性並改進了錯誤處理。

以上是我如何同時等待多個異步任務並訪問其結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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