Esto es más una pregunta general con respecto a los patrones asincrónicos en C# .NET descritos en MSDN here.En C# .NET, ¿una operación asíncrona crea necesariamente un hilo que bloquea?
Cuando se requiere una larga duración sincrónica operación ser llamado (por ejemplo - WCF, consulta DB, IO, etc), y no quiero que el hilo para bloquear (por ejemplo, - hilo GUI), ¿significa que debe existir otro hilo en alguna parte que haga el bloqueo?
¿El hacer una llamada sincrónicaasíncrono requiere necesariamente un hilo en algún lugar de bloquear?
Por lo tanto, si realizo 10 llamadas asincrónicas de larga duración (que en realidad son 10 llamadas sincrónicas), ¿debe haber 10 subprocesos haciendo la espera? ¿O hay un mecanismo para evitar que se bloqueen 10 hilos?
En WCF, puede crear métodos Begin y End para una llamada WCF para que sea asíncrona. ¿Significa esto que cuando llamo a este método asíncrono, hay un hilo en algún lugar, ya sea en el cliente o en el servidor, que me espera?
He leído varios artículos sobre la variación de métodos para lograr la asincronía, pero estos artículos no explican lo que se hace debajo del capó.
actualización
hice mi pregunta más specifc, ya que soy más acerca interesados en .NET. patrones asíncronos descritos por MSDN.
Actualización 2
reformé la cuestión a ser aún más específico para realizar llamadas sincrónica asincrónica.
Gran enlace al artículo. Por lo tanto, no lo dice explícitamente, pero parece que se trata de llamadas asincrónicas de bajo nivel, esto se hace sin bloquear hilos. Pero si quiere hacer una llamada sincronizada asincrónica, debe crearse una cadena. Estoy en lo cierto en esto? – Mas
@Mas Crear un 'Thread' es solo una forma de hacerlo asincrónico. Como se explicó en el Resumen en respuesta, hay otras maneras de convertir sus llamadas de sincronización a llamadas asíncronas. – VS1
De acuerdo con la tabla, todos los Patrones de Asincronización se basan en subprocesos (las Tareas también usan subprocesos en el fondo). – Mas