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) –