в моем текущем коде я жду, когда произойдет какое-то событие, используя что-то вроде
WaitForMultipleObjects(2,pEvents,false,1000);
в отдельной ветке и публиковать вещи на State Machine всякий раз, когда я получаю события, достойные публикации. Я портирую это поведение в QP, где, насколько я понимаю, каждый активный объект является собственным потоком. Могу ли я просто сделать это в бесконечном цикле (с некоторым условием прерывания) в активном объекте?
Как я понимаю, QP также ожидает события Windows под капотом, есть ли хитрость, чтобы получить дескриптор события Windows, представляющего мою текущую очередь активных объектов, и дождаться его, чтобы мой поток (активный объект) блокировался на мои (не QP) события И событие активируется, если какой-то другой объект отправляет в мою очередь?
На случай, если кому-то интересно, я нашел именно то, что искал. Член m_osObject QActive является дескриптором события, ожидаемого, когда входная очередь пуста.
Обратите внимание, что я проверял это только на порте Windows QP, и, насколько мне известно, он не работает с любым другим портом.
Других решений пока нет …