Я создал многозарядное приложение. Окна приложения (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
Все идет хорошо, за исключением того, что второй поток не получает никаких сообщений.
У вас есть идеи, почему?