【问题标题】:Can I monitor the size of a thread's message queue?我可以监控线程的消息队列的大小吗?
【发布时间】:2010-09-20 09:09:11
【问题描述】:

我们的应用程序从 DCOM (0x80010100) 收到系统调用失败的 RPC 错误,我们怀疑目标线程的消息队列已满(尽管我不相信这是真的)。我知道队列是limited to 10,000 messages,我想看看在常见情况下我们是否接近这个数字。有没有办法监控线程的消息队列大小?

我发现最有希望的选项是GetQueueStatus,但这不包括队列中的消息数量,只包括它们的类型。

【问题讨论】:

    标签: multithreading winapi message-queue


    【解决方案1】:

    我不知道任何监控队列大小的方法(我几乎不推荐使用内核调试器和在 TIB+[0x40] 的内部 Win32Thread 数据结构中折腾)。

    出于调试目的,要在收到错误时检查队列是否已满,请尝试执行 PostThreadMessage。如果已满,调用应该会失败,GetLastError() == 0x718。 (没有足够的配额来处理这个命令。)

    【讨论】:

      猜你喜欢
      • 2014-09-04
      • 2011-04-02
      • 1970-01-01
      • 2013-01-03
      • 1970-01-01
      • 2011-08-27
      • 2011-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多