設置線程池併發數

int count = Environment.ProcessorCount; //取得cpu的內核數
ThreadPool.GetMaxThreads(out int w1, out int h1);

 

//默認是 2028,若設置的數量小於cpu的內核數,則返回false表示無效,仍是2048,所以當設置max時先判斷一個是否小於Environment.ProcessorCount,如果小於是無效的
bool b= ThreadPool.SetMaxThreads(20, 20); 
b =ThreadPool.SetMinThreads(20, 20);   /雖然max是20,但併發可能只有Environment.ProcessorCount,則可設置min也爲20
ThreadPool.GetMaxThreads(out int w, out int h);


for (int i = 0; i < 100; i++)
{
//ThreadPool.QueueUserWorkItem(new WaitCallback(DoWork), i);
ThreadPool.QueueUserWorkItem(this.DoWork, i);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章