Asp.net ThreadPool中可用的最大线程数是多少

时间:2011-07-08 21:27:26

标签: c# asp.net multithreading

出于好奇,asp.net中可用于处理请求的最大线程数是多少。

asp.net是否会针对任何I / O或数据库操作发布它们,以便可以处理最大数量的请求?

3 个答案:

答案 0 :(得分:3)

它通过machine.config控制。

  

配置> system.web>   中processModel

<processModel 
   maxWorkerThreads="num"
   maxIoThreads="num"
   minWorkerThreads="num"
   minIoThreads="num"
   ...
   />

它基于每个CPU设置。单CPU的默认值为20/20 http://msdn.microsoft.com/en-us/library/7w2sway1(v=VS.100).aspx

答案 1 :(得分:2)

在.net 4.0中,每个CPU有250个工作线程和1,000个I / O完成线程......

答案 2 :(得分:1)

要释放I / O操作的工作线程,您需要使用async / await模式。当您“等待”异步文件操作时,该线程将被释放回ASP.NET线程池,然后用于处理其他请求,直到您的文件i / o操作完成。

http://www.asp.net/mvc/tutorials/mvc-4/using-asynchronous-methods-in-aspnet-mvc-4