我有一些麻烦,.NET的线程池(.NET 4)。线程池最大线程
我读过,在默认情况下.NET为每处理器25个线程的限制,但根据对SO和其他地方的论坛帖子,我可以增加限制与下面的代码。
void SetThreads(int threads)
{
ThreadPool.SetMaxThreads(threads, threads);
ThreadPool.SetMinThreads(threads, threads);
}
然而,当我设定在上述的一些任意高数,例如,2000和队列〜1000个项目,我仍然只有33〜线程中运行(.NET CLR花费〜5个线程),和ThreadPool.GetAvailableThreads()
返回剩余的1971个线程。
为什么没有上述工作的代码?
你是如何在线程池中排队的任务?显示你的测试代码可能真的有帮助。 –
你的问题是,你应该运行_less_多于33个线程,而不是更多。 –
@Henk Holterman,这不是一个大的应用程序 - 这是一个快速怪人在职HTTP负载生成我做了尝试,并加载本地Web服务器与一群请求。不幸的是它并没有那么好。 – foxy