ActiveX コントロールとして公開される WinForms コントロールに埋め込まれた WPF コントロールがあります。この ActiveX は、サードパーティによって開発された C++ アプリケーションで最終的に使用されます。
ある時点で、ActiveX コントロールの UI がフリーズしますが、C++ アプリケーションの残りの部分は正常に動作します。デバッグを行った後、Application.Current.Dispatcher.Invoke を呼び出すたびに WPF コントロールがブロックされていることに気付きました。ただし、WinForms コントロールは Control.Invoke の呼び出しを正常に処理します。デバッガーを一時停止するたびに、UI スレッドが C++ アプリケーションで何らかの作業を行っていることがわかりますが、ブロックされたり、何かを待ったりしているようには見えません。UI スレッドが突然、不可解にも WPF デリゲートの実行を拒否したかのようです。
C++ アプリケーションが長時間 (数分間) UI スレッドを独占すると、WPF コントロールがこの状態になることがあります。私が最初に行うことは、このような時間のかかるタスクに別のスレッドを使用することですが、既に述べたように、C++ アプリケーションが何を行っているかについて私は責任を負いません。とにかく、これは私の WPF コントロールがそのような方法で動作する理由にはなりません。ただし、この問題を解決する方法がわかりません。任意の助けをいただければ幸いです。