Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.04 c
2-1212493010
Nicolas
2008-06-03 15:36
2008.06.29
Запрос на составную выбору без повторений


2-1207920040
webSQLNeederr
2008-04-11 17:20
2008.06.29
Кирилица в Memo


2-1212337033
Ceil
2008-06-01 20:17
2008.06.29
Подскажите


15-1210925436
Ega23
2008-05-16 12:10
2008.06.29
Года полтора-два назад тема была


2-1212320965
ajunta
2008-06-01 15:49
2008.06.29
Окончание загрузки TWebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский