在完成Parallel.ForEach后,您可以使用Task.WhenAll方法来等待所有任务完成,并在所有任务完成后执行后续操作。以下是一个示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var list = Enumerable.Range(1, 100).ToList();
// 使用Parallel.ForEach并行处理列表中的每个元素
var tasks = new List<Task>();
Parallel.ForEach(list, item =>
{
Console.WriteLine($"Processing item {item}");
tasks.Add(Task.Run(() => DoSomething(item)));
});
// 等待所有任务完成
await Task.WhenAll(tasks);
Console.WriteLine("All tasks completed");
}
static async Task DoSomething(int item)
{
// 在这里执行您的任务
await Task.Delay(1000);
Console.WriteLine($"Task completed for item {item}");
}
}
在这个示例中,我们首先创建了一个包含100个整数的列表。然后,我们使用Parallel.ForEach并行处理列表中的每个元素,并在DoSomething方法中执行任务。在Parallel.ForEach循环中,我们将每个任务添加到任务列表中。最后,我们使用Task.WhenAll方法等待所有任务完成,然后输出“All tasks completed”。
请注意,这个示例使用了async/await模式来处理异步任务。如果您不熟悉这种模式,请务必研究它,以便更好地理解如何在Parallel.ForEach后执行后续操作。
领取专属 10元无门槛券
手把手带您无忧上云