Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los delegados permiten llamar a métodos sincrónicos de forma asincrónica. Cuando se llama a un delegado de forma sincrónica, el Invoke
método llama al método de destino directamente en el subproceso actual. Si se llama al método BeginInvoke
, el Common Language Runtime (CLR) pone en cola la solicitud y devuelve inmediatamente al llamador. El método de destino se llama asincrónicamente desde un subproceso del grupo de subprocesos. El hilo original, que presentó la solicitud, es libre de continuar ejecutándose en paralelo con el método de destino. Si se ha especificado un método de devolución de llamada en la llamada al método BeginInvoke
, se invoca el método de devolución de llamada cuando finaliza el método de destino. En el método de devolución de llamada, el método EndInvoke
obtiene el valor devuelto y cualquier parámetro de entrada y salida o de solo salida. Si no se especifica ningún método de devolución de llamada al llamar a BeginInvoke
, se puede llamar a EndInvoke
desde el subproceso que llamó a BeginInvoke
.
Importante
Los compiladores deben emitir clases delegadas con los métodos Invoke
, BeginInvoke
y EndInvoke
mediante la firma de delegado especificada por el usuario. Los métodos BeginInvoke
y EndInvoke
deben representarse como nativos. Dado que estos métodos se marcan como nativos, la CLR proporciona automáticamente la implementación en tiempo de carga de la clase. El cargador se asegura de que no se reemplazarán.
En esta sección
Llamada a métodos sincrónicos de forma asincrónica
Describe el uso de delegados para realizar llamadas asincrónicas a métodos normales y proporciona ejemplos de código sencillos que muestran las cuatro maneras de esperar a que se devuelva una llamada asincrónica.
Secciones relacionadas
Modelo asincrónico basado en eventos (EAP)
Describe la programación asincrónica en .NET.