2011-07-08 15 views

Respuesta

3

Se controla a través de machine.config.

configuración

> system.web> processmodel

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

Se establece en función de cada CPU. El valor predeterminado para una sola CPU es 20/20.
http://msdn.microsoft.com/en-us/library/7w2sway1(v=VS.100).aspx

+0

Gracias por esa información, pero todavía estoy confundido en la segunda parte de mi pregunta acerca de si el hilo trabajado se ha liberado si el código asp.net está ocupado realizando algún IO o funcionamiento de la base de datos. –

+1

'ThreadPool' es administrado por el marco. Como tal, es difícil predecir cuándo será lanzado. Pero entonces, la idea es que no deberías molestarte con eso. – Mrchief

2

En .NET 4.0 tiene es 250 subprocesos de trabajo por la CPU y 1.000 de E/S subprocesos de finalización ...

+0

Puede controlar el límite de subproceso de trabajo utilizando GetMaxThreads y SetMaxThreads método ... –

+2

¿Cuál es su fuente? –

1

Para liberar subprocesos de trabajo para operaciones de E/S, querrá utilizar el patrón async/await. Cuando "aguarda" una operación de archivo asíncrono, el hilo se volverá a lanzar al grupo de subprocesos de ASP.NET, que luego se utilizará para procesar otras solicitudes hasta que se complete la operación de i/o de archivos.

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

Cuestiones relacionadas