Delegados asincrónicos
Los delegados asincrónicos proporcionan la capacidad de llamar a un método sincrónico de forma asincrónica. Cuando se llama a un delegado sincrónicamente, el método Invoke llama al método de destino directamente en el subproceso actual. Si el compilador admite delegados asincrónicos, generará el método Invoke, así como los métodos BeginInvoke y EndInvoke. Si se llama al método BeginInvoke, Common Language Runtime colocará en cola la solicitud y devolverá el control inmediatamente a quien llamó. Se llamará al método de destino desde un subproceso del sondeo de subprocesos. El subproceso original, que envío la solicitud, puede continuar ejecutándose en paralelo con el método de destino, que se ejecuta en un subproceso del sondeo de subprocesos. Si se ha especificado una devolución de llamada en BeginInvoke, se le llamará cuando el método de destino devuelva el control. En la devolución de llamada, se utiliza el método EndInvoke para obtener el valor devuelto, así como los parámetros de entrada y salida. Si no se especificó la devolución de llamada en BeginInvoke, se puede utilizar EndInvoke en el subproceso original que envió la solicitud.
Nota El compilador de Microsoft C# actualmente admite un delegado asincrónico.
En esta sección
- Utilizar delegados
Describe cómo implementar delegados asincrónicos mediante programación. - Compilador y compatibilidad con Common Language Runtime
Explica la compatibilidad del compilador con el motor de tiempo de ejecución, mediante BeginInvoke y EndInvoke con firmas de métodos asincrónicos. - Métodos BeginInvoke y EndInvoke de delegados proporcionados por el compilador
Explica aspectos específicos del compilador con los métodos BeginInvoke y EndInvoke. - Ejemplo de programación de delegados asincrónicos
Demuestra el uso de delegados asincrónicos en un ejemplo sencillo, que factoriza algunos números.
Secciones relacionadas
- Programación asincrónica
Describe la orientación de la programación asincrónica con .NET Framework.