Descripción simple de los hilos de trabajo y de E / S en .NET
Es muy difícil encontrar una descripción detallada pero simple de los subprocesos de trabajo y de E / S en .NET
Lo que tengo claro con respecto a este tema (pero puede que no sea técnicamente preciso):
Los hilos de trabajo son hilos quedebería Emplea CPU para su trabajo;Subprocesos de E / S (también llamados "subprocesos de puerto de finalización")debería emplee controladores de dispositivo para su trabajo y esencialmente "no haga nada", solo supervise la finalización de las operaciones sin CPU.Lo que no está claro:
Aunque el método ThreadPool.GetAvailableThreads devuelve el número de subprocesos disponibles de ambos tipos, parece que no hay una API pública para programar el trabajo para el subproceso de E / S. ¿Solo puede crear manualmente un subproceso de trabajo en .NET?Parece que un solo hilo de E / S puede monitorear múltiples operaciones de E / S. ¿Es verdad? Si es así, ¿por qué ThreadPool tiene tantos hilos de E / S disponibles de forma predeterminada?En algunos textos, leí esa devolución de llamada, que se activa después de que la terminación de la operación de E / S se realiza mediante un hilo de E / S. ¿Es verdad? ¿No es este un trabajo para un subproceso de trabajo, teniendo en cuenta que esta devolución de llamada es una operación de la CPU?Para ser más específicos, ¿las páginas asíncronas de ASP.NET subprocesos de E / S del usuario? ¿Cuál es exactamente el beneficio de rendimiento al cambiar el trabajo de E / S a un subproceso separado en lugar de aumentar el número máximo de subprocesos de trabajo? ¿Es porque un solo hilo de E / S monitorea múltiples operaciones? ¿O Windows hace un cambio de contexto más eficiente cuando se usan hilos de E / S?