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

Вниз

Кто ждет результата SendMessage с WM_CopyData?   Найти похожие ветки 

 
Aleksandr.   (2005-01-28 17:28) [0]

В смысле, нить, который его посылает, или основная нить программы?
А то захотелось мне для большей надежности узнать, каков результат отправленного сообщения, но увидел я, что посылающее окно становится недоступным во время ожидания результата. Вот и думаю, есть ли смысл отдельные потоки для отсылок WM_CopyData выделять, тем более, что слаб я в тематике, как там в Execute всякие PeekMessage или что там обрабатывать. И, кстати, в какой момент обработки получателем результат сообщения возвращается назад? Когда получатель делает

Boolean(Msg.Result):=true

?


 
Digitman ©   (2005-01-28 17:32) [1]


> Кто ждет результата SendMessage с WM_CopyData?


я. жду. иногда. представь себе.


> В смысле, нить, который его посылает, или основная нить
> программы?


"В смысле" нить, которой адресовано сообщение.
Либо "В смысле" окно, которому адресовано сообщение, которое создано конкретной нитью и БЕЗ которой сие окно НЕ имеет право на существование.


 
Aleksandr.   (2005-01-28 17:46) [2]

Digitman © :

Объясните мне, каким образом окно-получатель вдруг да станет ждать результата получаемого сообщения? Это ведь в отправителе вызывается
 if Boolean(SendMessage(rHandle,WM_CopyData,Handle,LParam(@CSD)))


 
Digitman ©   (2005-01-28 18:40) [3]


> каким образом окно-получатель вдруг да станет ждать результата
> получаемого сообщения?


никаким.

нет никаких "окон-получателей".

Есть трэды, создавшие окна, которые являются потенциальными адресатами отправляемых им сообщений.

Каждый трэд волен/обязан свою собственную очередь сообщений.

За ожидание/выборку/диспетчеризацию/обработку ВСЕХ сообщений, адресованных либо трэду, либо окнам им созданным, ответсвенен сам трэд.

Очередь сообщений  самому трэду  и окнам, им созданным, едина, отдельна для него и ассоциирована именно с ДАННЫМ трэдом.

Очередей трэд-сообщений в системе существует не более чем самих трэдов.

Каждый отдельный трэд может иметь, а может и не иметь свою индивидуальную очередь сообщений.

Как только трэд выполнил хотя бы однократно CreateWindow{Ex}, система создает и ассоциирует с дан.трэдом индивидуальную очередь сообщений.

Та же самая очередь сообщений создается системой и ассоциируется с дан.тредом как только последний выполнит любую из ф-ций, обращающихся к этой очереди (Peekmessage, WaitMessage, GetMessage и т.п.)

За ожидание/выборку/диспетчеризацию/обработку сообщений из своей же очереди ответственен сам трэд - владелец очереди. за него это никто не сделает.

Если в поле адресата сообщения hWnd <> 0, то трэд волен или обязан выполнить как минимум DispatchMessage(), что приведет к непоср.передаче упр-я оконной ф-ци того окна, которому адресовано сообщение. В противном случае трэд волен интерпретировать сообщение как ему вздумается.



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

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

Наверх




Память: 0.48 MB
Время: 0.023 c
11-1092467454
Dmitry
2004-08-14 11:10
2005.03.13
Не работают хинты в KOL


1-1109632966
Stdnet
2005-03-01 02:22
2005.03.13
файл и листбокс


1-1109491767
tazik
2005-02-27 11:09
2005.03.13
Кто может, подкиньте, пожалуйста, DirectShow.dcu!


1-1108961311
buka
2005-02-21 07:48
2005.03.13
Поисковая система


3-1108019366
Dmitry
2005-02-10 10:09
2005.03.13
Проблемы с Firebird 1.5?