簡體   English   中英

SendMessage 與 PostMessage + WaitForSingleObject

[英]SendMessage vs PostMessage + WaitForSingleObject

我想知道調用 SendMessage(哪個塊)和調用 PostMessage 與 WaitForSingleObject 有什么區別。 想法?

如果您從 COM object 位於 STA 中的 COM 的上下文中調用SendMessage() ,則可能會被拒絕(調用通過消息泵發送)。 PostMessage()不限於遵守 COM 公寓規則。

此外, PostMessage()將消息放在窗口消息隊列的末尾。 SendMessage()繞過隊列。 您可以在 Raymond Chen 的博客The Old New Thing上找到關於消息隊列的更長討論。

我的觀點是, SendMessage()PostMessage()之間的區別比表面上看到的要多。 我真的建議您瀏覽 Raymond 的博客,因為他多年來介紹了許多問題。

PostMessageWaitForSingleObject允許您進行異步消息傳遞。 您可以發送消息、執行其他操作,然后稍后再查看回復。 SendMessage是同步的,需要您等待。

我一直認為 SendMessage 直接調用你的 windows 過程,跳過消息隊列; 而 PostMessage 只是將消息添加到隊列中。

SendMessage 是單個 API 調用,因此不太容易出錯。 Go 內置而不是自己滾動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM