http://www.cnblogs.com/Charltsing/p/taskpoolthread.html
task默認對線程的調度是逐步增加的,連續多次運行並發線程,會提高占用的線程數,而等若干秒不運行,線程數又會降低。這樣,會影響程序多次運行的效率。
即使使用了TaskCreationOptions.LongRunning參數,依然效率偏低。對於一些固定執行時間的線程,我們可以提高線程池的最小線程數,來顯著提高task多線程的效率。
ThreadPool.SetMinThreads(100, 100);
提高最小線程數之后,可以不使用LongRunning參數。
測試結果(2000線程):
狀態 時間
沒有設置任何參數,首次運行 48s
沒有設置任何參數,連續運行多次 15s~12s
未設置最小線程,設置LongRunning 15s
設置最小線程100,未設LongRunning 8s
設置最小線程100,設置LongRunning 16s
以上結果供大家參考。
聯系QQ 564955427