Главная страница
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.046 c
9-1103402623
Kind
2004-12-18 23:43
2005.03.13
Посмотрите на мою ИГРУшечку :)


3-1107959270
axx
2005-02-09 17:27
2005.03.13
SQL синтаксис


14-1108901620
kaZaNoVa
2005-02-20 15:13
2005.03.13
PHP-качалка сайтов


9-1103298254
-=SS=-
2004-12-17 18:44
2005.03.13
GlScene Texture


14-1109023226
ArMellon
2005-02-22 01:00
2005.03.13
SocketA(462)