Question

J'ai un contrôle ActiveX écrit à l'aide de la bibliothèque MS ATL et des événements sont déclenchés via pDispatch- > Invoke (..., DISPATCH_METHOD) . Le contrôle sera utilisé par un client .NET et ma question est la suivante: le déclenchement de l'événement est-il un appel synchrone ou asynchrone? Mon problème est que, si elle est synchrone, l'application qui gère l'événement peut entraîner des problèmes de performances, sauf si elle retourne immédiatement.

Était-ce utile?

La solution

Il est synchrone du point de vue du composant générant l'événement. Le thread d'exécution du contrôle appellera le code du destinataire et tout sera hors de son contrôle à ce moment-là.

Les clients recevant les événements doivent s'assurer de revenir rapidement. S'ils doivent effectuer un travail considérable, ils doivent planifier cette opération de manière asynchrone. Par exemple, en publiant un message Windows ou en utilisant un fil séparé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top