使用时的准则:C#中的ThreadPool.SetMaxThreads和ThreadPool.SetMinThreads

问题描述 投票:1回答:1

在我的一个应用程序中,我必须使用多个线程。作为一种更好的方法,我已经用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接口)分享他们的经验,那将会很有帮助。

此致,萨钦

c# multithreading threadpool
1个回答
2
投票

通常,不建议更改线程池大小。来自MSDN:

更改线程池中的最大线程数时请小心。虽然您的代码可能会受益,但更改可能会对您使用的代码库产生负面影响。

如果托管公共语言运行库(例如,Internet信息服务(IIS)或SQL Server),则主机可以限制或阻止更改线程池大小。

CLR或主机(例如IIS)本身将根据应用程序的线程模式确定是增加还是减少线程池大小,所以如果我是你,我不会打扰这些数字。

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.