「您不能將工作線程數或I/O完成線程數設置爲小於計算機中處理器數的數字。」(Threadpool.SetMaxThreads)設置線程池中的最大線程數少於核心
如果我需要更少的線程(我使用的資源不支持超過4個線程從一個進程)?有沒有辦法將8芯盒子的最大值設置爲4? 我在C#中使用任務。
「您不能將工作線程數或I/O完成線程數設置爲小於計算機中處理器數的數字。」(Threadpool.SetMaxThreads)設置線程池中的最大線程數少於核心
如果我需要更少的線程(我使用的資源不支持超過4個線程從一個進程)?有沒有辦法將8芯盒子的最大值設置爲4? 我在C#中使用任務。
看來你應該儘量限制線程的數量與訪問該資源,而不是線程的總數,這可以通過鎖定或機票
完成是的,微軟有這樣的要求,即線程的數量不能小於處理器的數量。更多信息here。
我很想知道爲什麼Microsoft有這樣的要求?它應該是無害的不是嗎?這個要求沒有意義...
剛剛試過這個,這個「要求」似乎是不正確的。我相信它只是默認將MinThreads設置爲機器中的核心數量。 如果我這樣做:
ThreadPool.SetMinThreads(1, 1);
ThreadPool.SetMaxThreads(2,2);
一個四核機器上,它似乎正確地扼殺線程執行,如果我離開了SetMinThreads稱,雖然,它忽略了我的電話,以SetMaxThreads(因爲你不能設置MaxThreads少比MinThreads(這是默認的核心數量))
很好的建議,謝謝 – DeveloperInToronto 2011-03-17 12:06:27