我在使用 .NET 4 中的 ThreadPool 时遇到了一些问题。
我读到 .NET 默认情况下每个处理器有 25 个线程的限制,但是根据来自stackoverflow和其他地方的论坛帖子,我可以使用以下代码增加这个限制。
void SetThreads(int threads)
{
ThreadPool.SetMaxThreads(threads, threads);
ThreadPool.SetMinThreads(threads, threads);
}
然而,当我将上述内容设置为一些任意高的数字,例如2000,并且排队约1000个项目时,我仍然只有大约33个线程在运行(.NET CLR占用了约5个线程),并且ThreadPool.GetAvailableThreads()
返回1971个剩余线程。
为什么上面的代码不起作用?