我可以阻止IVideoWindow :: put_Visible发布消息吗?

时间:2010-03-09 08:26:15

标签: message-queue directdraw

当调用IVideoWindow :: put_Visible()时,它会从消息队列中查看消息并将其分派。这完全扰乱了呼叫序列。

我已经修复了由此引起的几次崩溃,具体情况就是个案偏见。也就是说,在调用put_Visible()之前设置一个标志然后清除该标志。在事件处理程序中,首先检查标志,如果已设置,则将事件放回消息队列并退出事件处理程序(即推迟处理直到put_Visible()返回。问题是我的代码库太大了而且这种方法无法维持。

有没有办法简单地改变put_Visible()的行为,使它不会弄乱消息队列和调度?

1 个答案:

答案 0 :(得分:0)

最终我得到了一个想法但未经过验证。这是在第二个新线程中调用put_Visible()。因为Win32已经将分离的线程分开了消息队列,所以put_Visible()不太可能使主消息队列混乱。