Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
2-1212474154
muk
2008-06-03 10:22
2008.06.29
перехватить конкретный exception


3-1201096350
Gklbery
2008-01-23 16:52
2008.06.29
динамический use


2-1212430785
S@shka
2008-06-02 22:19
2008.06.29
Как реализуется подобная вещь...


3-1200909327
MZ
2008-01-21 12:55
2008.06.29
запрос


3-1200635835
Anatoly Podgoretsky
2008-01-18 08:57
2008.06.29
Несколько LEFT JOIN в Акцесс




   Наверх