Pregunta

Tengo un control ActiveX escrito usando la biblioteca MS ATL y estoy activando eventos a través de pDispatch->Invoke(..., DISPATCH_METHOD).El control será utilizado por un cliente .NET y mi pregunta es la siguiente: ¿la activación del evento es una llamada sincrónica o asincrónica?Mi preocupación es que, si es síncrona, la aplicación que maneja el evento podría causar problemas de rendimiento a menos que regrese inmediatamente.

¿Fue útil?

Solución

Es sincrónico desde el punto de vista del componente que genera el evento.El hilo de ejecución del control llamará al código del receptor y las cosas estarán fuera de su control en ese punto.

Los clientes que reciben los eventos deben asegurarse de regresar rápidamente.Si necesitan realizar una cantidad significativa de trabajo, deben programarlo de forma asincrónica.Por ejemplo, publicando un mensaje de Windows o usando un hilo separado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top