Цикл сообщений для потока со скрытым окном?

У меня есть приложение Delphi 6, в котором есть поток, предназначенный для взаимодействия с иностранным приложением, которое использует SendMessage() и WM_COPYDATA сообщения для взаимодействия с внешними программами. Поэтому я создаю скрытое окно с помощью AllocateHWND() для обслуживания этой потребности, поскольку очередь сообщений потока не работает из-за того, что функция SendMessage() принимает только хэндлы окон, а не идентификаторы потоков. В чем я не уверен, так это в том, что поместить в метод потока Execute().

Я предполагаю, что если я использую цикл GetMessage() или создам цикл с вызовом функции WaitFor*() в нем, то поток заблокируется, и поэтому WndProc() потока никогда не будет обрабатывать сообщения SendMessage() от внешней программы, верно? Если это так, то какой правильный код нужно поместить в цикл Execute(), который не будет потреблять циклы процессора без необходимости, но завершится после получения сообщения WM_QUIT? Я всегда могу сделать цикл с Sleep(), если это необходимо, но мне интересно, есть ли лучший способ.

6
задан Robert Oschler 8 October 2011 в 23:23
поделиться

0 ответов

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

Похожие вопросы: