如您所知,Windows邮件根据调度方式排队或排队。我有兴趣知道哪些是排队的,哪些是没有排队但我无法在任何地方找到该信息。官方的MSDN文档about message routing, here,虽然很好地解释了机制,但在谈论消息的排队时却很模糊。它仅引用了几个例子。所有消息特定页面都没有关于排队的任何信息。
它是否被视为一个实现细节,程序员除了提到排队存在之外不应该被打扰?无论如何,为了我自己的好奇心,我正在寻找这样的事情。它存在吗?
答案 0 :(得分:2)
您通常不需要知道邮件是否排队。如果有人使用PostMessage发送消息,每条消息也可能排队。
我能想到的原因只有一个:在分派消息之前对消息进行预处理。这几乎占了99%用于鼠标和键盘消息(请参阅TranslateMessage和Accelerator以及工具提示消息文档)。
只有3组消息:
您可以自己详细检查。使用Spy ++(32位/ 64位)并观看窗口的消息。日志显示已发布消息的P和SendMessage的S. R代表从SendMessage返回。
使用Spy ++时,您会看到所有消息中的少数都被放入队列中。
再次: 没有必要详细了解发送的消息和发布的内容。