我正在下载文件,这意味着即使我只有2个内核,它也可以提高两个以上线程的性能。
Parallel.ForEach()
是否只生成与核心数量一样多的线程,
即使我将ParallelOptions.MaxDegreeOfParallelism设置为更高的值?
答案 0 :(得分:3)
来自文档:
MaxDegreeOfParallelism限制并发操作的数量 通过此ParallelOptions传递的并行方法调用运行 实例到设定值,如果是正数。如果 MaxDegreeOfParallelism是-1,那么就没有限制了 并发运行的数量。
此函数仅抛出ArgumentOutOfRangeException
,MaxDegreeOfParalleism
的类型为int。所以这意味着,它可以创建比核心数更多的线程。
我可以确认一下,因为我已经运行了很多xml生成过程,并且任务管理器显示了与我之前设置完全相同的进程数。