溫馨提示×

如何控制C# Parallel.ForEach的并發(fā)度

c#
小樊
81
2024-10-09 12:45:42
欄目: 編程語言

在C#中,可以使用Parallel.ForEach方法來并行處理集合中的元素。要控制Parallel.ForEach的并發(fā)度,可以通過設(shè)置ParallelOptions對象來實(shí)現(xiàn)。以下是一個(gè)示例:

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 };

        // 創(chuàng)建一個(gè)ParallelOptions對象
        ParallelOptions options = new ParallelOptions();

        // 設(shè)置最大并行度(這里設(shè)置為4)
        options.MaxDegreeOfParallelism = 4;

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

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

在這個(gè)示例中,我們創(chuàng)建了一個(gè)ParallelOptions對象,并通過MaxDegreeOfParallelism屬性設(shè)置了最大并行度為4。這意味著Parallel.ForEach將同時(shí)處理最多4個(gè)元素。請注意,實(shí)際并發(fā)度可能會(huì)受到系統(tǒng)資源和任務(wù)性質(zhì)的影響。

0