ThreadPool.GetMaxThreads是否根据machine.config中的processModel标记获取值?

时间:2012-03-02 18:43:25

标签: asp.net .net .net-4.0 asp.net-4.0 threadpool

我已将machine.config中的maxIoThreads和maxWorkerThreads设置为100.

<processModel autoConfig="false" maxWorkerThreads="100" maxIoThreads="100"/>

但是,当我在Visual Studio中调试ASP.net 4.0 Web应用程序代码时,我发现ThreadPool.GetMaxThreads将两者的计数返回为200。

        int workerThreads;
        int portThreads;
        System.Threading.ThreadPool.GetMaxThreads(out workerThreads, out portThreads);
        //workerThreads & portThreads both get the value of 200

我的问题是machine.config中的processmodel标记和ThreadPool.GetMaxThreads之间有任何关系吗?

1 个答案:

答案 0 :(得分:1)

选中此http://msdn.microsoft.com/en-us/library/7w2sway1.aspx

  

maxWorkerThreads =在每个CPU的基础上配置用于进程的最大工作线程数。例如,如果单处理器服务器上的此值为25,则ASP.NET使用运行时API将进程限制设置为25.在双处理器服务器上,限制设置为50.

此外,请确保您已根据本指南在httpruntime中定义了minFreeThread

  

此属性的值必须等于或大于httpRuntime配置部分中的minFreeThread属性设置。