.NETに移行するVB6アプリケーションがあります。 WPFウィンドウを開くVB6から.NET関数を呼び出しています。これらのウィンドウはメインスレッド上で実行する必要があるため、別のVB6フォームと同じように動作します。 DispatcherとSynchronizationContextが必要なので、これらの新しいウィンドウから非同期操作を実行する必要もあります。最初にWPFウィンドウを呼び出すサービスを作成するときに、新しいDispatcherとDispatcherSynchronizationContextを作成するだけです。Forms Interop ToolkitなしでVB6から呼び出されたWPF Windowsを実行できますか?
私はWPFウィンドウを開き、その境界を描画しませんでした。 私は上記のアプローチに気づいていないスレッドの問題の可能性はありますか?これはこれについて正しいことと思われますか?一般的な.netアプリケーションとは異なり、私たちがディスパッチャーを自分で管理しているので、このアプローチに競合状態や隠された問題があるのは怖いです。
私はInterop Forms Toolkitがあることを知っていますが、フォームと直接やりとりするためのvb6コードは必要ありません。我々はちょうど私のアプローチが後でなくすぐに間違っているかどうかを知ることは素晴らしいと思いますので、これらのウィンドウとこのインタフェースを書き始めています。
これはまさに私たちが今行っていることです。 VB6コードと同じスレッドで実行されているこのディスパッチャで発生する可能性のある、奇妙なスレッドの問題や競合がないことを確認したかっただけです。 – bzuillsmith