设置线程池并发数

发布时间 2023-11-21 13:37:21作者: 81

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);
}