首页 > 解决方案 > 为什么以下 C# 程序使用有限 (10) 个线程?

问题描述

为什么以下程序的输出总是 10 个线程?我试图将线程池的最大线程数更改为 500,但它没有改变任何东西。

在此处输入图像描述

class Program
{
    private static object _locker = new object();

    static void Main(string[] args)
    {
        
        var data = new Dictionary<int, DateTime>();

        Parallel.For(0, 100000000, new ParallelOptions { MaxDegreeOfParallelism = 500 },
            i =>
            {
                lock (_locker)
                {
                    if (!data.ContainsKey(Thread.CurrentThread.ManagedThreadId))
                    {
                        data.Add(Thread.CurrentThread.ManagedThreadId, DateTime.Now);
                        Console.WriteLine($"{DateTime.Now}, {Thread.CurrentThread.ManagedThreadId}");
                    }
                }
                
            });
    }

}

标签: c#multithreading

解决方案


推荐阅读