“您不能将工作线程数或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