¿Por qué usar solicitudes asíncronas en lugar de usar un conjunto de subprocesos más grande?

Durante los Techdays aquí en los Países Bajos, Steve Sanderson hizo una presentación sobre C # 5, ASP.NET MVC 4 y Web asíncrono.

Explicó que cuando las solicitudes tardan mucho tiempo en finalizar, todos los subprocesos del conjunto de subprocesos se ocupan y las nuevas solicitudes tienen que esperar. El servidor no puede manejar la carga y todo se ralentiza.

uego, mostró cómo el uso de solicitudes de búsqueda asíncronas mejora el rendimiento porque el trabajo se delega a otro subproceso y el conjunto de subprocesos puede responder rápidamente a las nuevas solicitudes entrantes. Incluso demostró esto y demostró que 50 solicitudes concurrentes primero tomaron 50 * 1s pero con el comportamiento asíncrono en su lugar solo 1,2 s en total.

Pero después de ver esto, todavía tengo algunas preguntas.

¿Por qué no podemos usar un conjunto de hilos más grande? ¿No está usando async / await para abrir otro hilo más lento que simplemente aumentar el conjunto de hilos desde el principio? ¿No es como el servidor en el que corremos de repente recibe más hilos o algo así?

La solicitud del usuario todavía está esperando que finalice el subproceso asíncrono. Si el hilo del grupo está haciendo otra cosa, ¿cómo se mantiene ocupado el hilo 'UI'? Steve mencionó algo sobre "un núcleo inteligente que sabe cuándo algo está terminado". ¿Como funciona esto

Respuestas a la pregunta(6)

Su respuesta a la pregunta