Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 将线程池中的最大线程数设置为小于核心数_.net_Visual Studio 2010_C# 4.0 - Fatal编程技术网

.net 将线程池中的最大线程数设置为小于核心数

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

“不能将工作线程数或I/O完成线程数设置为小于计算机中处理器数的数值。”()

如果我需要更少的线程(我使用的资源不支持一个进程中超过4个线程),该怎么办?有没有办法将8芯盒的最大值设置为4?
我使用的是C#中的任务。

似乎您应该尝试限制访问该资源的线程数量,而不是通过锁定或票证可以完成的线程总数。

是的,Microsoft要求线程数量不能小于处理器数量。更多信息


我很想知道为什么微软有这样的要求?它应该是无害的,不是吗?这个要求没有意义…

只是尝试了一下,这个“要求”似乎不正确。我相信它只是在默认情况下将MinThreads设置为机器中的#个内核。 如果我这样做:

ThreadPool.SetMinThreads(1, 1);
ThreadPool.SetMaxThreads(2,2);
在QuadCore机器上,它似乎可以正确地限制线程执行,但如果我忽略SetMinThreads调用,它会忽略我对SetMaxThreads的调用(因为您不能将MaxThreads设置为小于MinThreads(默认情况下为#个内核))