1

我尝试创建一个,但是一旦激活 reportProgress,BackgroundWorkerin Window1 就无法访问ProgressBarin Window2,因为“调用线程无法访问此对象,因为不同的线程拥有它”。

似乎有一个较低级别的线程模型我可以使用,但它似乎也复杂得多。

4

3 回答 3

1

在 WPF 中,UI 控件和属性只能从 UI 线程激活。为了从不同的线程更改进度条的值,您可以将命令添加到 GUI 线程的调度程序队列。您可以通过将委托传递给该Dispatcher.Invoke()方法来做到这一点。有关详细信息,请参阅http://msdn.microsoft.com/en-us/magazine/cc163328.aspx上的文章。

于 2010-02-17T12:37:49.020 回答
1

你只需要得到ProgressBar调度员。

您可以通过以下方式访问ProgressBar

Window2.prograssbar.Dispatcher.Invoke(
    () => /*the code for modifying the progressbar*/ );
于 2010-02-17T12:38:02.627 回答
0

您需要查看代表

于 2010-02-17T12:34:35.043 回答