作成しようとしましたが、reportProgressがアクティブ化されると、「別のスレッドがオブジェクトを所有しているため、呼び出し元のスレッドはこのオブジェクトにアクセスできません」ためBackgroundWorker、Window1のProgressBarinはWindow2のinにアクセスできませんでした。
私が使用できる低レベルのスレッドモデルがあるようですが、それははるかに複雑なようです。
作成しようとしましたが、reportProgressがアクティブ化されると、「別のスレッドがオブジェクトを所有しているため、呼び出し元のスレッドはこのオブジェクトにアクセスできません」ためBackgroundWorker、Window1のProgressBarinはWindow2のinにアクセスできませんでした。
私が使用できる低レベルのスレッドモデルがあるようですが、それははるかに複雑なようです。
WPFでは、UIコントロールとプロパティはUIスレッドからのみアクティブ化できます。別のスレッドからプログレスバーの値を変更するために、GUIスレッドのディスパッチャーキューにコマンドを追加できます。Dispatcher.Invoke()これを行うには、デリゲートをメソッドに渡します。詳細については、 http://msdn.microsoft.com/en-us/magazine/cc163328.aspxの記事を参照してください。
あなたはただProgressBardisptacherを手に入れる必要があります。
次の方法でアクセスできますProgressBar。
Window2.prograssbar.Dispatcher.Invoke(
() => /*the code for modifying the progressbar*/ );
あなたは代表者を調べる必要があります