我正在下载文件,这意味着即使我只有2个内核,也可以提高性能以创建两个以上的线程。
Parallel.ForEach()是否仅产生与核心数量一样多的线程,
即使我将ParallelOptions.MaxDegreeOfParallelism设置为更高的值?

最佳答案

从文档:

MaxDegreeOfParallelism限制并发操作的数量
由通过此ParallelOptions传递的Parallel方法调用运行
实例为设置值(如果为正)。如果
MaxDegreeOfParallelism为-1,则对
并发运行的操作数。

该函数仅抛出ArgumentOutOfRangeException,而MaxDegreeOfParalleism的类型为int。因此,这意味着它可以创建比内核数更多的线程。

我可以确认,因为我运行了很多xml生成过程,并且任务管理器完全按照我之前的设置显示了过程数。

关于.net - Parallel.ForEach()-多少个线程?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12933308/

10-11 23:00
查看更多