如何在parallel.foreach中使用 await

   2024-10-07 8510
核心提示:在Parallel.ForEach中使用await并不是一个好的选择,因为Parallel.ForEach是用于并行执行多个任务的,而await是用于等待单个任务

在Parallel.ForEach中使用await并不是一个好的选择,因为Parallel.ForEach是用于并行执行多个任务的,而await是用于等待单个任务完成的。如果在Parallel.ForEach中使用await,会导致整个循环变成同步执行,失去了并行执行的效果。

如果需要在Parallel.ForEach中等待每个任务完成,可以使用Task.WhenAll方法来等待所有任务完成,示例如下:

List<Task> tasks = new List<Task>();Parallel.ForEach(itEMS, item =>{    Task task = Task.Run(async () =>    {        // 执行异步操作        await DoSomethingAsync(item);    });    tasks.Add(task);});await Task.WhenAll(tasks);

在上面的示例中,我们首先创建一个包含所有任务的List,然后在Parallel.ForEach中执行异步操作,并将每个任务添加到List中。最后,使用Task.WhenAll方法等待所有任务完成。这样就能够在并行执行异步操作的同时等待所有任务完成。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号