3
我正在下载文件,这意味着即使我只有2个内核,它会提高性能,使两个以上的线程。Parallel.ForEach() - 多少个线程?
即使我将ParallelOptions.MaxDegreeOfParallelism设置为更高的值,Parallel.ForEach()
的线程数是否与内核数量一样多? ?
我正在下载文件,这意味着即使我只有2个内核,它会提高性能,使两个以上的线程。Parallel.ForEach() - 多少个线程?
即使我将ParallelOptions.MaxDegreeOfParallelism设置为更高的值,Parallel.ForEach()
的线程数是否与内核数量一样多? ?
从技术文档:
的MaxDegreeOfParallelism限制了传递这个ParallelOptions 实例的设定值,如果是阳性的并行方法调用运行并发操作 的数量。如果 MaxDegreeOfParallelism为-1,则对并发运行的操作数没有限制。
该函数只抛出ArgumentOutOfRangeException
而MaxDegreeOfParalleism
的类型为int。所以它意味着它可以创建比核心数更多的线程。
我可以证实它,因为我已经跑了很多显示的流程数量完全按照我以前设置的XML生成过程和任务管理器。
您使用的是什么版本的.NEt?如果您使用.NET4.5,则ReadAsync可能会更容易 –
我正在使用4.0。但我可以问我们是否可以在服务器上安装4.5。的 – Skuli
可能重复的[是否Parallel.ForEach限制活动线程的数目?](http://stackoverflow.com/questions/1114317/does-parallel-foreach-limits-the-number-of-active-threads) –