我想知道调用SendMessage (阻塞)和结合WaitForSingleObject调用PostMessage有什么不同。有什么想法?
发布于 2011-07-22 01:13:29
如果从COM调用的上下文中调用SendMessage(),则可能会拒绝该调用(调用是通过消息泵调度的)。PostMessage()不受遵守COM单元规则的限制。
此外,PostMessage()将消息放在窗口的消息队列的末尾。SendMessage()绕过队列。你可以在Raymond Chen的博客The Old New Thing上找到更长的关于消息队列的讨论。
我的观点是,SendMessage()和PostMessage()之间的区别比看上去的更多。我真的推荐你去看看Raymond的博客,因为这些年来他已经介绍了很多问题。
发布于 2011-07-22 00:26:21
PostMessage和WaitForSingleObject允许您进行异步消息传递。您可以发送消息,执行其他操作,并在稍后返回查看回复。SendMessage是同步的,需要您等待。
发布于 2011-07-22 01:10:36
我一直认为SendMessage直接调用windows过程,跳过了消息队列;而PostMessage只是将消息添加到队列中。
https://stackoverflow.com/questions/6779386
复制相似问题