У меня есть элемент управления ActiveX, написанный с использованием библиотеки MS ATL, и я запускаю события через pDispatch->Invoke(..., DISPATCH_METHOD). Элемент управления будет использоваться клиентом .NET, и у меня такой вопрос - запуск события - синхронный или асинхронный вызов? Меня беспокоит то, что в синхронном режиме приложение, обрабатывающее событие, может вызвать проблемы с производительностью, если оно не вернется немедленно.





Это синхронно с точки зрения компонента, генерирующего событие. Поток выполнения элемента управления вызовет код получателя, и в этот момент все выходит из-под его контроля.
Клиенты, получающие события, должны убедиться, что они вернутся как можно скорее. Если им нужно выполнить значительный объем работы, они должны запланировать это асинхронно. Например, разместив сообщение Windows или используя отдельную цепочку.