在我的一个应用程序中,我必须使用多个线程。作为一种更好的方法,我已经用ThreadPool
替换了一个线程队列。
在Form的开头,我设置Min / Max Threads如下:
ThreadPool.SetMaxThreads(20,20)
ThreadPool.SetMinThreads(1,1)
稍后使用时,我使用ThreadPool
如下:
Function()
{
ThreadPool.QueueUserWorkItem(new WaitCallback(Action), arguments);
}
我没有使用任何类型的DeQueue
。
如果有人可以与ThreadPool
(特别是设置MIN / MAX接口)分享他们的经验,那将会很有帮助。
此致,萨钦
通常,不建议更改线程池大小。来自MSDN:
更改线程池中的最大线程数时请小心。虽然您的代码可能会受益,但更改可能会对您使用的代码库产生负面影响。
如果托管公共语言运行库(例如,Internet信息服务(IIS)或SQL Server),则主机可以限制或阻止更改线程池大小。
CLR或主机(例如IIS)本身将根据应用程序的线程模式确定是增加还是减少线程池大小,所以如果我是你,我不会打扰这些数字。
希望这可以帮助。