首頁 > 後端開發 > C++ > 如何協調和檢索多個並發非同步任務的結果?

如何協調和檢索多個並發非同步任務的結果?

Barbara Streisand
發布: 2025-01-28 03:21:07
原創
612 人瀏覽過

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

有效處理多個並發非同步操作及其結果

本指南示範如何同時執行多個非同步任務並檢索其個體結果。 假設您有三個獨立的非同步操作,每個操作都會產生獨特的結果。目的是同時運行這些任務,並一旦完成後訪問各自的結果。

方法提供了一個優雅的解決方案。此方法建立單一任務,僅在完成所有輸入任務時才完成。 然後,它會傳回一個包含每個任務結果的陣列。 Task.WhenAll>

這是一個實用的實作:

在此範例中,
<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>
登入後複製

>,catTaskhouseTask表示您的非同步操作。 carTask同時啟動它們。 Task.WhenAll>行停止執行,直到結束所有三個任務為止。 await Task.WhenAll(...)> 完成後,您可以透過等待每個原始任務來存取單一結果。結果儲存在

>,

catResult中,可以進行進一步處理。 houseResult carResult>至關重要的是要記住,在呼叫時,非同步方法立即返回「熱門」任務,這已經開始了。 因此,您必須

必須

使用(如上所示)或以獲得實際結果。 對於其清晰度和例外處理功能,使用await通常是首選的。

以上是如何協調和檢索多個並發非同步任務的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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