有效处理多个并发异步操作及其结果
本指南演示了如何同时执行多个异步任务并检索其个体结果。 假设您有三个独立的异步操作,每个操作都会产生独特的结果。目的是同时运行这些任务,并一旦完成后访问各自的结果。
方法提供了一个优雅的解决方案。此方法创建一个单个任务,仅在完成所有输入任务时才完成。 然后,它返回一个包含每个任务结果的数组。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中文网其他相关文章!