Можно ли ждать событий Windows (WaitForMultipleObjects) в активном объекте QP (Quantum Platform)?

В моем текущем коде я жду, чтобы какое-то событие произошло, используя что-то вроде

WaitForMultipleObjects(2,pEvents,false,1000);

в отдельной ветке и публиковать вещи на State Machine всякий раз, когда я получаю события, достойные публикации. Я портирую это поведение в QP, где, насколько я понимаю, каждый активный объект является собственным потоком. Могу ли я поэтому просто сделать это в бесконечном цикле (с некоторым условием завершения прерывания) в активном объекте?

Как я понимаю, QP также ожидает события Windows под капотом, есть ли хитрость, чтобы получить дескриптор события Windows, представляющего мою текущую очередь активных объектов, и дождаться его, так что мой поток (активный объект) блокируется на мои (не QP) события И событие активируется, если какой-либо другой объект отправляет в мою очередь?

1 ответ

Решение

На случай, если кому-то интересно, я нашел именно то, что искал. Член m_osObject QActive является дескриптором события, ожидаемого, когда входная очередь пуста.

Обратите внимание, что я проверял это только на порте Windows QP, и, насколько мне известно, он не работает с любым другим портом.

Другие вопросы по тегам