Как эффективно реализовать цикл событий? - PullRequest
0 голосов
/ 01 февраля 2009

COM-объект (сервер) отправляет уведомление о событии успешно COM-клиенту

Без:

  • АТЛ
  • MFC

Как эффективно получить основной поток до ожидания / сна (бесконечно), пока COM-сервер не уведомит COM-клиента о конкретное событие ?

1 Ответ

3 голосов
/ 01 февраля 2009

С объектами событий.

Основной поток вызывает CreateEvent () при инициализации для создания объекта события с автосбросом.

Затем основной поток входит в цикл обработки событий, в котором он неоднократно вызывает MsgWaitForMultipleObjects (). ( здесь - пример цикла сообщений.)

И вам, как правило, нужно проверять наличие оконных сообщений, даже если основной поток не имеет графического интерфейса.

В клиентском потоке (который создает объект приемника) вызовите SetEvent () внутри метода приемника после любого необходимого обновления состояния. Это разбудит основной поток.

И прочитайте это и это , если вы этого еще не сделали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...