每当调用 IVideoWindow::put_Visible() 时,它都会从消息队列中查看一条消息并分派它。这完全打乱了通话顺序。
我已经修复了几个由此引起的崩溃,在个案中存在偏差。也就是说,在调用 put_Visible() 之前设置一个标志,然后清除该标志。在事件处理程序中,首先检查标志,如果已设置,则将事件放回消息队列并退出事件处理程序(即推迟处理直到 put_Visible() 返回。问题是我的代码库太大而且这种方法不成立。
有没有办法简单地改变 put_Visible() 的行为,使其不会弄乱消息队列和调度?