El conjunto de subprocesos administrado .NET: -
- Se dimensiona en función de la carga de trabajo actual y el hardware disponible
- Contiene subprocesos de trabajo y subprocesos de puerto de finalización (que se utilizan específicamente para dar servicio a IO)
- Está optimizado para una gran cantidad de operaciones de corta duración.
Existen otras implementaciones de grupo de subprocesos que podrían ser más apropiadas para operaciones de larga duración.
Específicamente, use un grupo de subprocesos para evitar que su aplicación cree demasiados subprocesos. La característica más importante de un conjunto de subprocesos es la cola de trabajo. Es decir, una vez que su máquina esté suficientemente ocupada, el conjunto de subprocesos pondrá en cola las solicitudes en lugar de generar inmediatamente más subprocesos.
Por lo tanto, si va a crear un número pequeño y limitado de hilos, créelos usted mismo. Si no puede determinar por adelantado cuántos subprocesos podrían crearse (por ejemplo, se crean en respuesta a las E / S entrantes), y su trabajo será de corta duración, use el conjunto de subprocesos. Si no sabe cuántos, pero su trabajo será de larga duración, no hay nada en la plataforma que lo ayude, pero es posible que pueda encontrar implementaciones alternativas de agrupación de hilos que se ajusten.