0

IVideoWindow::put_Visible() が呼び出されるたびに、メッセージ キューからメッセージを取り出してディスパッチします。それは呼び出しシーケンスを完全に台無しにします。

ケースバイケースのバイアスで、これによって引き起こされたいくつかのクラッシュを修正しました。つまり、put_Visible() を呼び出す前にフラグを設定し、フラグを消去します。そして、イベント ハンドラーでは、最初にフラグを確認し、フラグが設定されている場合は、イベントをメッセージ キューに戻し、イベント ハンドラーを終了します (つまり、put_Visible() が戻るまで処理を延期します。問題は、コード ベースが大きすぎることです)。そしてその方法は持続しません。

put_Visible() の動作を単純に変更して、メッセージ キューとディスパッチを混乱させないようにする方法はありますか?

4

1 に答える 1

0

最終的に私はアイデアを思いつきますが、それを検証していません。これは、2 番目の新しいスレッドで put_Visible() を呼び出すことです。Win32 ではスレッドが分離され、メッセージ キューが分離されているため、put_Visible() がメイン メッセージ キューを混乱させる可能性はほとんどありません。

于 2010-03-11T23:26:52.163 に答える