温馨提示×

如何控制C# Parallel.ForEach的并发度

c#
小樊
81
2024-10-09 12:45:42
栏目: 编程语言

在C#中,可以使用Parallel.ForEach方法来并行处理集合中的元素。要控制Parallel.ForEach的并发度,可以通过设置ParallelOptions对象来实现。以下是一个示例:

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

        // 创建一个ParallelOptions对象
        ParallelOptions options = new ParallelOptions();

        // 设置最大并行度(这里设置为4)
        options.MaxDegreeOfParallelism = 4;

        // 使用Parallel.ForEach处理集合中的元素
        Parallel.ForEach(numbers, options, (number, state, index) =>
        {
            Console.WriteLine($"Processing {number} at index {index}");
            Thread.Sleep(100); // 模拟耗时操作
        });

        Console.WriteLine("All tasks completed.");
    }
}

在这个示例中,我们创建了一个ParallelOptions对象,并通过MaxDegreeOfParallelism属性设置了最大并行度为4。这意味着Parallel.ForEach将同时处理最多4个元素。请注意,实际并发度可能会受到系统资源和任务性质的影响。

0