Parallel.ForEach() - 多少个线程?

时间:2012-10-17 11:30:43

标签: .net parallel-processing parallel.foreach

我正在下载文件,这意味着即使我只有2个内核,它也可以提高两个以上线程的性能。

Parallel.ForEach()是否只生成与核心数量一样多的线程, 即使我将ParallelOptions.MaxDegreeOfParallelism设置为更高的值?

1 个答案:

答案 0 :(得分:3)

来自文档:

  

MaxDegreeOfParallelism限制并发操作的数量   通过此ParallelOptions传递的并行方法调用运行   实例到设定值,如果是正数。如果   MaxDegreeOfParallelism是-1,那么就没有限制了   并发运行的数量。

此函数仅抛出ArgumentOutOfRangeExceptionMaxDegreeOfParalleism的类型为int。所以这意味着,它可以创建比核心数更多的线程。

我可以确认一下,因为我已经运行了很多xml生成过程,并且任务管理器显示了与我之前设置完全相同的进程数。