Asíncrono asíncrono en C#
El concepto de asíncrono es opuesto al de sincronización.
Asincrónico, hilo, paralelo. Los tres conceptos son diferentes. Un hilo es una secuencia única de flujo de control en un proceso. También conocido como procesos ligeros. Término informático que se refiere a la unidad de programación de un programa en ejecución.
Cuando se emite una llamada a un procedimiento asincrónico, la persona que llama no puede obtener el resultado de inmediato. El componente que realmente maneja la llamada notifica a la persona que llama a través del estado, notificaciones y devoluciones de llamada cuando se completa. Tome la clase CAsyncSocket como ejemplo (tenga en cuenta que CSocket se deriva de CAsyncSocket, pero su función se ha convertido de asincrónica a sincrónica). Cuando un cliente emite una solicitud de conexión llamando a la función Connect, el hilo de llamada puede ejecutarse inmediatamente hacia abajo. Cuando la conexión esté realmente establecida, la capa inferior del socket enviará un mensaje para notificar al objeto. Aquí se menciona que el componente de ejecución y la persona que llama devuelven resultados a través de tres canales: estado, notificación y devolución de llamada. Cuál se puede utilizar depende de la implementación del ejecutivo y no está bajo el control de quien llama a menos que el ejecutivo proporcione múltiples opciones. Si el componente de ejecución usa el estado para notificar, entonces la persona que llama debe verificarlo cada cierto tiempo, lo cual es muy ineficiente (a algunas personas que son nuevas en la programación multiproceso siempre les gusta usar un bucle para verificar el valor de una determinada variable). En realidad, esto es un error muy grave). Si se utiliza la notificación, la eficiencia es muy alta porque el componente de ejecución casi no requiere operaciones adicionales. En cuanto a la función de devolución de llamada, en realidad no es muy diferente de la notificación. En correspondencia con la sincronización, asíncrono se refiere a permitir que la CPU deje de lado temporalmente la respuesta a la solicitud actual, procese la siguiente solicitud y comience a ejecutarse después de recibir una notificación de devolución de llamada mediante sondeo u otros métodos. Los subprocesos múltiples colocan operaciones asincrónicas en otro subproceso para ejecutar y obtienen notificaciones de finalización mediante métodos de sondeo o devolución de llamada. Sin embargo, en el puerto de finalización, el sistema operativo se hace cargo de la programación de las operaciones asincrónicas y activa el método de devolución de llamada cuando se completa. interrupciones de hardware. Este método no requiere subprocesos adicionales.