确定窗口消息队列深度

时间:2009-06-02 02:04:38

标签: winapi message-queue postmessage

我们有一个应用程序使用窗口消息队列将数据从套接字传递到消费者HWND(速率为~2100Hz)。此应用程序已工作> 2年。最近,我们的应用程序已经开始出现问题,我们的应用程序没有触发/执行WM_TIMER。我认为这是由于数据被泵入消息队列。

我的问题是有一种方法可以确定给定线程/ HWND的消息队列中有多少未决消息?

2 个答案:

答案 0 :(得分:6)

Raymond Chen在他的帖子“but then we ran into problems when we started posting 10,000 messages per second”中非常详细地回答了这个问题。

  

研究小组要求见面   用户界面团队帮助工作   在负载下解决他们的问题。他们   概述了他们的设计和解释   它在低数据速率下运行良好,   “但是当我们遇到问题时我们遇到了问题   开始发布10,000条消息   第二“

     

那时候,所有人的头脑   用户界面的人只是坐在那里   并且呆了几秒钟。

     

“这就像说你的丰田凯美瑞   一旦你得到稳定性问题   每小时超过500英里。“

答案 1 :(得分:0)

没有一个好方法可以做到这一点。您可以做的一件事是积极清空消息队列并将它们放入您自己的队列中。但是,这不会解决您的问题。

我讨厌告诉你这个,但你真的应该找到一种处理套接字数据的方法。我认为你会发现一些其他的机制规模更好,性能更好,并且比使用Windows消息队列更容易调试。

Foredecker