2
我只是做了一个简单的实验,使用下面的代码显示进程中的线程总数。Parallel.ForEach期间使用的线程数
Console.WriteLine("Total Number of Threads: {0}", Process.GetCurrentProcess().Threads.Count);
Parallel.ForEach(
names,
new ParallelOptions {MaxDegreeOfParallelism = Environment.ProcessorCount },
name =>
{
Console.WriteLine(name);
});
Console.Read();
Console.WriteLine("Total Number of Threads: {0}", Process.GetCurrentProcess().Threads.Count);
我在parallel.foreach之前得到了12个线程,并且在parallel.foreach之后得到了17个线程。
问题:
- 这是为什么在Parallel.Foreach使用的5个线程继续循环后运行?这是否意味着如果在此之后我有其他的Parallel.Foreach,会有更多的线程继续增加?
- 为什么Parallel.Foreach之前不使用12个线程?是否因为12个线程目前正在被其他人使用?