Re[9]: SendMessage vs PostMessage
От: Рек Россия  
Дата: 21.02.03 12:03
Оценка:
Здравствуйте, algod, Вы писали:

A>Здравствуйте, Рек, Вы писали:


Рек>>


Рек>>Мелкие терминологические замечания:

Рек>>...
A> Но ты же меня понял? Тогда — зачем эти вечные споры о терминологии

Рек>>Кстати вопрос:

Рек>>Если делать SM из другого потока (не из потока, создавшего окно),
Рек>>то прямого вызова оконной процедуры происходить не будет?
A> Будет! Читаем МСДН:
A>If the specified window was created by a different thread, the system switches to that thread and calls the appropriate window procedure. Messages sent between threads are processed only when the receiving thread executes message retrieval code. The sending thread is blocked until the receiving thread processes the message.

A>SM гарантированно возвращает код "оконной процедуры". Если в этот момент оконная проца другого потока подвиснет — подвиснешь и ты.


A> (для справки есть еще SendMessageTimeout — тоже самое, что SM, но более расчитано на работу с многозадачностью )


Рек>>Всё будет проходить через очередь?

Рек>>Вариант И GetMessage в этом случае вернёт 0?
Рек>>Или GetMessage всё равно, выгребая sm-cообщение из очереди, вызовет
Рек>>оконную процедуру изнутри напрямую, не возвращая управление?
A>
A> См. выше....

Правильно ли я понял,
что SM-сообщения обрабатываются внутри GetMessage (прямым колом)
и никогда не попадают в DispatchMessagе?
В том числе и тогда когда сообщение пришло из другого потока.
Так?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.