我運行一個多線程循環的執行過程中更改parallelOptions.MaxDegreeOfParallelism:是否有可能一個Parallel.ForEach
protected ParallelOptions parallelOptions = new ParallelOptions();
parallelOptions.MaxDegreeOfParallelism = 2;
Parallel.ForEach(items, parallelOptions, item =>
{
// Loop code here
});
我想並行循環的執行期間改變parallelOptions.MaxDegreeOfParallelism減少或增加一些線程。
parallelOptions.MaxDegreeOfParallelism = 5;
它似乎並沒有增加線程。有沒有人有任何想法?
你能解釋一下你爲什麼想這樣做嗎?如果需要的話,它已經增加了自己的線程數,直到達到指定的最大值,或者如果合適的話,它將使用更少的線程數。 – 2010-09-13 23:02:06
主要用於在共享服務器上使用太多資源時啓動應用程序。我得到的服務器運行在100%,這降低了服務器上其他應用程序的響應度。 – 2010-09-13 23:04:59
這是一個CPU綁定問題或其他「資源」,如磁盤? – 2010-09-13 23:39:40