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

问题描述:

当调用IVideoWindow :: put_Visible()时,它会从消息队列中查看消息并分派它。这完全混淆了通话顺序。我可以阻止IVideoWindow :: put_Visible发布消息吗?

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

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

最终,我得到一个想法,但尚未证实此事。这是为了在第二个新线程中调用put_Visible()。由于Win32分离的线程具有分离的消息队列,因此put_Visible()不可能混淆主消息队列。