2009-06-02 67 views
2

我们有一个应用程序使用窗口消息队列将数据从套接字传递到使用者HWND(速率为〜2100Hz)。此应用程序已工作2年以上。最近我们的应用程序已经开始展示WM_TIMER没有被我们的应用程序解雇/执行的问题。我认为这是由于数据被输入到消息队列中。确定窗口消息队列深度

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

回答

0

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

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

Foredecker

+0

谢谢,那就是我所害怕的。我只是想看看在重新设计数据流之前,消息队列有多深以验证我的问题是在那段代码中。 – tallganglyguy 2009-06-02 02:37:17

6

这是真正伟大的详细雷蒙德陈在他的文章“but then we ran into problems when we started posting 10,000 messages per second”回答。

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

那时候,所有 用户界面的人头都坐在那里 并且隐藏了几秒钟。

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