首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在完成后跟进Parallel.ForEach?

在完成Parallel.ForEach后,您可以使用Task.WhenAll方法来等待所有任务完成,并在所有任务完成后执行后续操作。以下是一个示例:

代码语言:csharp
复制
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后执行后续操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券