メインウィンドウ(スレッドA )で、ユーザーが待機している間に何らかの作業を行う新しいスレッド(スレッドB )を開始します。
エラーが発生した場合、またはユーザーからの追加情報が必要な場合、スレッドBはイベントを発生させます。スレッドAはこれらのイベントをリッスンします。
スレッドAのイベントリスナーで、ユーザーにダイアログメッセージを表示する必要があります。カスタムダイアログウィンドウがあり、を使用して表示しますdialogWindow.showDialog()
。これは正常に機能しますが、ダイアログの所有者を設定しようとするとエラーが発生します。これを行いますdialogWindow.Owner = Window.GetWindow(this)
。
私が得るエラーは次のとおりです。別のスレッドがオブジェクトを所有しているため、呼び出し元のスレッドはこのオブジェクトにアクセスできません。
別のスレッドから発生するイベントをリッスンする正しい方法は何ですか?