我有一些麻煩,.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