У меня есть элемент управления ActiveX, написанный с использованием библиотеки MS ATL, и я запускаю события через pDispatch->Invoke(..., DISPATCH_METHOD)
. Элемент управления будет использоваться .NET-клиентом, и мой вопрос заключается в следующем: является ли запуск события синхронным или асинхронным вызовом? Я обеспокоен тем, что если синхронно, приложение, которое обрабатывает событие, может вызвать проблемы с производительностью, если оно не будет немедленно возвращено.Сбой COM-событий на C++ - синхронный или асинхронный?
0
A
ответ
4
Это синхронно с точки зрения компонента, генерирующего событие. Нить исполнения элемента управления вызовет код получателя, и в этот момент все не в порядке.
Клиенты, получающие мероприятия, должны быть уверены, что они вернутся быстро. Если им нужно выполнить значительную часть работы, тогда они должны планировать это асинхронно. Например, разместив сообщение Windows или используя отдельный поток.