.net 将线程池中的最大线程数设置为小于核心数
“不能将工作线程数或I/O完成线程数设置为小于计算机中处理器数的数值。”() 如果我需要更少的线程(我使用的资源不支持一个进程中超过4个线程),该怎么办?有没有办法将8芯盒的最大值设置为4?.net 将线程池中的最大线程数设置为小于核心数,.net,visual-studio-2010,c#-4.0,.net,Visual Studio 2010,C# 4.0,“不能将工作线程数或I/O完成线程数设置为小于计算机中处理器数的数值。”() 如果我需要更少的线程(我使用的资源不支持一个进程中超过4个线程),该怎么办?有没有办法将8芯盒的最大值设置为4? 我使用的是C#中的任务。似乎您应该尝试限制访问该资源的线程数量,而不是通过锁定或票证可以完成的线程总数。是的,Microsoft要求线程数量不能小于处理器数量。更多信息 我很想知道为什么微软有这样的要求?它应该是无害的,不是吗?这个要求没有意义…只是尝试了一下,这个“要求”似乎不正确。我相信它只是在默认情况
我使用的是C#中的任务。似乎您应该尝试限制访问该资源的线程数量,而不是通过锁定或票证可以完成的线程总数。是的,Microsoft要求线程数量不能小于处理器数量。更多信息
我很想知道为什么微软有这样的要求?它应该是无害的,不是吗?这个要求没有意义…只是尝试了一下,这个“要求”似乎不正确。我相信它只是在默认情况下将MinThreads设置为机器中的#个内核。 如果我这样做:
ThreadPool.SetMinThreads(1, 1);
ThreadPool.SetMaxThreads(2,2);
在QuadCore机器上,它似乎可以正确地限制线程执行,但如果我忽略SetMinThreads调用,它会忽略我对SetMaxThreads的调用(因为您不能将MaxThreads设置为小于MinThreads(默认情况下为#个内核))