【问题标题】:summarizing contents of the Windows Message Queue?总结 Windows 消息队列的内容?
【发布时间】:2011-05-09 17:29:38
【问题描述】:

我们有一个 CF.NET 3.5 应用程序在出现特定错误之前似乎可以正常工作大约 4 小时:一旦出现错误,在相应的 ..._MouseDown 事件发生之前,在鼠标单击后会有大约 30 秒的延迟叫。这向我表明消息泵存在一些损坏,或者可能是 Windows 消息队列中的内容过多。 任何人都可以提出有关如何攻击此错误的想法,特别是因为每次尝试都需要至少 4 小时来测试...
谢谢!
PS - 大量非托管代码混合在一起,C++ 错误会与 .Net 消息队列混淆吗?

【问题讨论】:

  • 如果我是你,我会搜索阻塞消息队列的方法调用或设置为某个小间隔的 Windows 计时器。
  • 哦。当然!当我在 Timer_Tick 中时没有其他消息被处理...所以如果我的滴答需要 30 秒,那可能是错误。
  • 如果你使用 Windows.Forms.Timer,是的,就是这样。

标签: compact-framework message-queue message-pump


【解决方案1】:

需要检查的几点:

  • 阻塞消息队列的方法调用。
  • System.Windows.Forms.Timer 的一个实例,设置为某个小间隔。
  • 在 GUI 线程(irda、串行端口等)中执行的对某些硬件设备的非异步 IO 访问

【讨论】:

  • 在 timer_tick 中调用的例程开始需要 30 秒才能完成。谢谢你的线索!
猜你喜欢
  • 2012-03-16
  • 2021-09-24
  • 2014-11-05
  • 1970-01-01
  • 2019-04-24
  • 2019-12-12
  • 1970-01-01
  • 2013-02-13
  • 2019-01-07
相关资源
最近更新 更多