Pergunta

Eu tenho um controle ActiveX escrito usando a biblioteca MS ATL e eu estou disparando eventos via pDispatch->Invoke(..., DISPATCH_METHOD). O controle será usado por um cliente .NET e minha pergunta é esta - é o acionamento do evento uma chamada síncrona ou assíncrona? Minha preocupação é que, se síncrona, o aplicativo que manipula o evento poderia causar problemas de desempenho, a menos que retorna imediatamente.

Foi útil?

Solução

É síncrona a partir do ponto de vista da geração de componente do evento. thread de execução do controle vai chamar no código receptores e as coisas estão fora de seu controle naquele ponto.

Os clientes que recebem os eventos devem se certificar de que voltar rapidamente. Se eles precisam fazer alguma quantidade significativa de trabalho, então eles devem agendar esta forma assíncrona. Por exemplo, colocando uma mensagem janelas ou usando um segmento separado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top