我刚刚使用这个链接做了一个多线程示例,如下所示:
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();
它在Parellel.For之前给了我 15 个线程,之后只给了我 17 个线程。所以只有 2 个线程被Parellel.For占用。
然后我使用这个链接创建了另一个示例代码,如下所示:
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();
在上面的代码中,我将MaxDegreeOfParallelism设置为 40,但仍为Parallel.For
.
那么如何增加运行线程Parallel.For
呢?