Главная страница
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.021 c
4-1192191482
Dmitry S
2007-10-12 16:18
2008.06.29
Вопрос про окно и разные потоки


15-1210783599
Отец
2008-05-14 20:46
2008.06.29
Мне книгу электронную.. ох


15-1211098247
No_Dead
2008-05-18 12:10
2008.06.29
Посоветуйте...


2-1212167580
VovKul
2008-05-30 21:13
2008.06.29
Проблема с BRCC32.EXE.


2-1212250427
Proxytel
2008-05-31 20:13
2008.06.29
Клавиатурный логер. Блокируется курсор...