我刚刚做了一个多线程示例这个链接 https://stackoverflow.com/questions/14869651/number-of-threads-being-used-during-parallel-foreach像下面这样:
Console.WriteLine("Number of Threads: {0}", System.Diagnostics.Process.GetCurrentProcess().Threads.Count);
int count = 0;
Parallel.For(0, 50000, options,(i, state) =>
{
count++;
});
Console.WriteLine("Number of Threads: {0}", System.Diagnostics.Process.GetCurrentProcess().Threads.Count);
Console.ReadKey();
它之前给了我 15 个线程并行.For之后它只给了我 17 个线程。所以只有2个线程被占用并行.For.
然后我使用创建了另一个示例代码这个链接 https://stackoverflow.com/questions/9538452/what-does-maxdegreeofparallelism-do像下面这样:
var options = new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount * 10 };
Console.WriteLine("MaxDegreeOfParallelism : {0}", Environment.ProcessorCount * 10);
Console.WriteLine("Number of Threads: {0}", System.Diagnostics.Process.GetCurrentProcess().Threads.Count);
int count = 0;
Parallel.For(0, 50000, options,(i, state) =>
{
count++;
});
Console.WriteLine("Number of Threads: {0}", System.Diagnostics.Process.GetCurrentProcess().Threads.Count);
Console.ReadKey();
在上面的代码中,我设置了最大并行度它设置为 40 但仍然采用相同的线程Parallel.For
.
那么我怎样才能增加运行线程Parallel.For
?