Я создал многодетное приложение. Все окна приложений (W[n]: TMyWindows) одинаковы, и все они имеют связанный с ними частный экземпляр класса объектов (E: TMyObject). Дочерние окна генерируют через эти объекты некоторые сообщения. Я создал в основном приложении два потока, которые обрабатывают эти сообщения в зависимости от их содержимого. Например, давайте сделаем следующие асинхронные вызовы:
W[1].E.Service(thread1service)
W[2].E.Service(thread2service)
TMyObject.Service(тип службы)
case servicetype of
thread1service: PostThreadMessage(thread1id,...);
thread2service: PostThreadMessage(thread2id,...);
end;
Теперь в методе выполнения каждого потока у меня есть что-то вроде этого:
while not terminated do
begin
...
if peekmessage(msg,0,thread1message_1,thread1message_n,pm_remove) then
process message
do other things;
end
Все идет нормально, за исключением того, что второй поток не получает никаких сообщений. У вас есть идеи, почему?