Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.29;
Скачать: CL | DM;

Вниз

Вопрос про окно и разные потоки   Найти похожие ветки 

 
Dmitry S ©   (2007-10-12 16:18) [0]

У меня есть окно, которое обрабатывает, к примеру, сообщение WM_USER.

Этому окну с различных потоков посылается сообщение WM_USER.

В каком потоке будет работать моя оконная функция?

Правильно ли я понимаю, что в том, где выполняется следующее:

 while GetMessage(Mmsg,0,0,0) do
 begin
   TranslateMessage(Mmsg);
   DispatchMessage(Mmsg);
 end;

А следовательно одновременно оконная функция в потоках выполняться не может.


 
Anatoly Podgoretsky ©   (2007-10-12 16:34) [1]

> Dmitry S  (12.10.2007 16:18:00)  [0]

В контексте потока окна.


 
Leonid Troyanovsky ©   (2007-10-12 16:38) [2]


> Dmitry S ©   (12.10.07 16:18)  

> А следовательно одновременно оконная функция в потоках выполняться
> не может.

Логично.
Поэтому, у потока есть не только очередь тех, которые Post,
но, и тех, которые Send, да и еще пара других.
Подробности см. у Джефа Рихтера.

--
Regards, LVT.


 
Dmitry S ©   (2007-10-13 05:42) [3]

Просто это сложно осознать, учитывая, что MessageBox, поставленный в коде оконной процедуры, не "замораживает" окно, хотя и приостанавливает выполнение оконной процедуры.


 
Однокамушкин   (2007-10-14 09:09) [4]


> Dmitry S ©   (13.10.07 05:42) [3]
> Просто это сложно осознать, учитывая, что MessageBox, поставленный
> в коде оконной процедуры, не "замораживает" окно, хотя и
> приостанавливает выполнение оконной процедуры.

MessageBox внутри себя имеет свой цикл с GetMessage и DispatchMessage, поэтому ваша оконная процедура получает управление, только рекурсивно: оконая процедура вызывает MessageBox, MessageBox - DispatchMessage, а DispatchMessage, при необходимости, - новую активацию вашей оконной процедуры



Страницы: 1 вся ветка

Текущий архив: 2008.06.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
2-1212170826
VovKul
2008-05-30 22:07
2008.06.29
Как поместить шрифт в ресурс...


15-1210699066
AEN
2008-05-13 21:17
2008.06.29
Программа для древовидных данных...


15-1210830736
User1
2008-05-15 09:52
2008.06.29
"Подбить результат"


2-1212313498
alex-drob
2008-06-01 13:44
2008.06.29
Как обьеденить две области памяти


15-1211164484
Slider007
2008-05-19 06:34
2008.06.29
С днем рождения ! 19 мая 2008 понедельник