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

Вниз

Чем отличается PostMessage от SendMessage.   Найти похожие ветки 

 
IGORYOK   (2003-08-12 21:39) [0]

Чем отличается PostMessage от SendMessage. раньше я считал, что ни чем, но когда проверил оказалось одна (первая) передаёт между приложениями сообщения, а вторая нет. Так как же для чего они


 
jack128   (2003-08-12 23:03) [1]

The SendMessage function sends the specified message to a window or windows. The function calls the window procedure for the specified window and does not return until the window procedure has processed the message. The PostMessage function, in contrast, posts a message to a thread"s message queue and returns immediately.


 
Yanis   (2003-08-12 23:11) [2]

А вот перевод, по сути одно и тоже:
http://delphimaster.net/view/7-1060709982/


 
jack128   (2003-08-12 23:16) [3]


> Yanis © (12.08.03 23:11) [2]

Оригинал полезней!! -))


 
Yanis   (2003-08-12 23:22) [4]

To [3]
Не все же полиглоты, как ты или я. Я нехочу никого обидеть но не все смогут перевести. Хотя ты прав, оригинал есть оригинал.


 
Digitman   (2003-08-13 08:51) [5]


> когда проверил оказалось одна (первая) передаёт между приложениями
> сообщения, а вторая нет


ничего подобного
SendMessage() - синхронная передача сообщения, с ожиданием результата. Вызывающий кодовый поток блокируется на исполнении этой ф-ции до тех пор, пока не получит тот или иной результат : либо результат обработки сообщения оконной ф-цией в целевом кодовом потоке, либо отказ (целевое окно задано неверно, еще/уже не существует и т.п.) со значением результата = 0.

PostMessage() - асинхронная передача сообщения, без ожидания результата (возврат результата обработки сообщения целевой оконной ф-цией здесь не предусмотрен). Вызывающий код.поток не блокируется на исполнении ф-ции, получает управление сразу же после попытки постановки посылаемого сообщения в очередь сообщений целевого окна. Результат исполнения ф-ции = True, если сообщение успешно поставлено в целевую очередь, False - иначе.


 
Verg   (2003-08-13 09:05) [6]


> Digitman © (13.08.03 08:51) [5]


К этом можно добавить еще маленькую деталь:
sendmessage приводит к прямому вызову функции обработки сообщений целевого объекта, кроме случаев, когда поток отправляет сообщение (SendMessage) окну, которое ему не принадлежит (было создано другим потоком). В этом случае происходит как бы смешанный вариант (post-send)message, очередь сообщений ЦО переводится в специальное состояние, а вызывающий поток блокируется до тех пор, пока ЦО не обратится к своей очереди сообщений, в этот момент и происходит обработка того самого сообщения и происходит в контексте потока ЦО. На этом механизме и основан принцип синхронизации потоков наследников TThread из модуля classes, а именно метод synchronize.


 
Digitman   (2003-08-13 10:14) [7]


> Verg


мне это известно не хуже чем тебе)
рискни растолковать это автору)



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

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

Наверх





Память: 0.46 MB
Время: 0.016 c
14-89527
Samael6
2003-10-08 14:55
2003.10.27
SoftIce - Windows 2000


1-89271
RoLeX
2003-10-14 14:58
2003.10.27
Как сдлеать, чтобы программа сворачивалась в трей???


4-89633
Rel_
2003-08-22 14:40
2003.10.27
ClipCursor - что-то не работает


3-89098
Ditrix
2003-10-08 11:23
2003.10.27
представление иеррархии в виде таблицы


6-89417
riland
2003-09-02 11:52
2003.10.27
Как определить логин подключившегося юзера?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский