有效處理多個並發非同步操作及其結果
本指南示範如何同時執行多個非同步任務並檢索其個體結果。 假設您有三個獨立的非同步操作,每個操作都會產生獨特的結果。目的是同時運行這些任務,並一旦完成後訪問各自的結果。
方法提供了一個優雅的解決方案。此方法建立單一任務,僅在完成所有輸入任務時才完成。 然後,它會傳回一個包含每個任務結果的陣列。 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>
>,catTask
,houseTask
表示您的非同步操作。 carTask
同時啟動它們。 Task.WhenAll
>行停止執行,直到結束所有三個任務為止。 await Task.WhenAll(...)
>
完成後,您可以透過等待每個原始任務來存取單一結果。結果儲存在
和catResult
中,可以進行進一步處理。 houseResult
carResult
>至關重要的是要記住,在呼叫時,非同步方法立即返回「熱門」任務,這已經開始了。 因此,您必須
使用(如上所示)或以獲得實際結果。 對於其清晰度和例外處理功能,使用await
通常是首選的。
以上是如何協調和檢索多個並發非同步任務的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!