Сообщения, посланные между нитями обработаны только, когда нить получения выполняет поисковый кодекс сообщения
как-то мне не до занятий переводами сейчас... Ясно только одно: либо имеем очередь, либо одновременный доступ к данным.
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Сообщения, посланные между нитями обработаны только, когда нить получения выполняет поисковый кодекс сообщения
как-то мне не до занятий переводами сейчас... Ясно только одно: либо имеем очередь, либо одновременный доступ к данным. |
|||
карма: 27 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Да ничего подобного
Если поток назначения выполняет (пусть это даже физически разные процы) какую-то работу, то отправитель спит до тех пор пока тот не сделает "GetMessage" (или то, что Билл имеет ввиду под "message retrieval code") А ентот "GetMessage" вместо выборки из очереди вызовет "appropriate window procedure". Безо всяких Dispatch, насколько я понимаю И никакого одновременного доступа к данным, и на очередь наплевать, вроде как. По крайней мере, все это Биллом написанное - я именно так понял... |
|||
карма: 9 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Galkov писал(а): Безо всяких Dispatch, насколько я понимаюСомнения тут у меня. Это что-же получается, если я поставлю после GetMessage точку останова в отладчике, то те сообщения, которые SendMessage, у меня не получится поймать? И потом, мало ли что моё приложение будет делать со входящими сообщениями, это уже моё дело. Так что, пресловутый SendMessage скорее всего всё-таки посылает сообщение в очередь, возможно с более высоким приоритетом, но ждёт (WaitForSingleObject), пока сообщение обработается посредством DispatchMessage. |
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
tsdima писал(а): Это что-же получается, если я поставлю после GetMessage точку останова в отладчикеНу попробуй и расскажи - я не пробовал. Что прочитал, то и "цитирую" (за что купил, в общем) А вот кстати, ты их что, собираешься поймать и при вызове из того же потока |
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
how to справки microsoft разделяют sendmessage и postmessage только как синхронная посылка сообщений и асинхронная. Ни тот, ни другой работать без обработки очереди по идее не должны.
|
|||
карма: 27 |
|
Главный модератор
Ответов: 2999
Рейтинг: 396
|
|||
Dilma писал(а): да включен уже с версии 164 как минимум. Достаточно скинуть на среду вот такой *.his файлик:Проверил: - установил b165; - скопировал компилятор из b164; - запустил предложенный скриптик; - создал новую схему сервиса; - нажал компилировать; Hiasm b165 писал(а):
Build start... Generated code Create project... Command line: dcc32.exe \"C:\\HiAsm\\Elements\\delphi\\code\\Project2.dpr\" \"-U C:\\HiAsm\\.\" -Q Borland Delphi Version 12.0 Copyright (c) 1983,98 Inprise Corporation C:\\HiAsm\\Elements\\delphi\\code\\Project2.dpr(47) Error: Undeclared identifier: \'_prop_Wait\' C:\\HiAsm\\Elements\\delphi\\code\\Project2.dpr(47) Warning: Comparing signed and unsigned types - widened both operands C:\\HiAsm\\Elements\\delphi\\code\\Project2.dpr(48) Error: Undeclared identifier: \'SStop\' C:\\HiAsm\\Elements\\delphi\\code\\Project2.dpr(53) Error: Undeclared identifier: \'Stop\' End build |
|||
карма: 6 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
да, make файлик туда и не попал
|
|||
карма: 27 |
|
Ответов: 9906
Рейтинг: 351
|
|||
tsdima писал(а): Так что, пресловутый SendMessage скорее всего всё-таки посылает сообщение в очередь, возможно с более высоким приоритетом, но ждёт (WaitForSingleObject), пока сообщение обработается посредством DispatchMessageВот чего я тебе скажу... Собираю схему
|
|||
карма: 9 |
|
Ответов: 2125
Рейтинг: 159
|
|||
А что такое CM_EXECPROC и кто его посылает?
[size=-2]------ Добавлено в 17:16 И потом, где гарантия, что оно не через fExMsgProc уходит? |
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
tsdima писал(а): А что такое CM_EXECPROC и кто его посылает?Дык цитата несколькими постами выше уже была Ну и определение там же есть
tsdima писал(а): И потом, где гарантия, что оно не через fExMsgProc уходит?Гарантии дать не сложно: контекстный поиск по fExMsgProc в KOL.pas дает
|
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
контрольный вопрос: при замене SendMessage на PostMessage бипы появляются?
|
|||
карма: 27 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Конечно.
А куда они на фиг денутся, с подводной лодки-то |
|||
карма: 9 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Очевидно, если окно принадлежит тому-же Thread, производится прямой вызов WindowProc.
|
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
очевидное - не интересно
|
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
так интересно как раз с разными thread
|
|||
карма: 27 |
|