Получает ли ThreadPool.GetMaxThreads значение, основанное на теге processModel в machine.config? - PullRequest
1 голос
/ 02 марта 2012

Я установил значения maxIoThreads и maxWorkerThreads в machine.config равными 100.

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

Однако при отладке кода веб-приложения ASP.net 4.0 в Visual Studio я вижу, что ThreadPool.GetMaxThreads возвращаетсчитать как 200 для них обоих.

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

Мой вопрос, есть ли связь между тегом processmodel в machine.config и ThreadPool.GetMaxThreads?

1 Ответ

1 голос
/ 23 марта 2012

Проверьте это http://msdn.microsoft.com/en-us/library/7w2sway1.aspx

maxWorkerThreads = Настраивает максимальное количество рабочих потоков, которое будет использоваться для процесса для каждого процессора. Например, если это значение равно 25 на однопроцессорном сервере, ASP.NET использует API времени выполнения, чтобы установить ограничение процесса на 25. На двухпроцессорном сервере ограничение установлено на 50.

Кроме того, убедитесь, что вы определили minFreeThread в httpruntime согласно этому руководству

Значение этого атрибута должно быть равно или больше значения атрибута minFreeThread в разделе конфигурации httpRuntime.

...