开发者

WPF: Is there a simple way to create a Progress Window?

开发者 https://www.devze.com 2022-12-20 05:28 出处:网络
I tried creating one, but the BackgroundWorker in Window1 couldn\'t access the ProgressBar in Window2 once the reportProgress was activated, because \"The calling thread cannot access this object beca

I tried creating one, but the BackgroundWorker in Window1 couldn't access the ProgressBar in Window2 once the reportProgress was activated, because "The calling thread cannot access this object because a different thread owns 开发者_运维知识库it".

Seems there's a lower level thread model I could use, but it also seems a lot more complicated.


You just need to get the ProgressBar disptacher.

You can access the ProgressBar with:

Window2.prograssbar.Dispatcher.Invoke(
    () => /*the code for modifying the progressbar*/ );


In WPF, UI controls and properties may only be activated from the UI thread. In order to change the progress bar's value from a different thread, you can add a command to the GUI thread's dispatcher queue. You can do this by passing a delegate to the Dispatcher.Invoke() method. See the article at http://msdn.microsoft.com/en-us/magazine/cc163328.aspx for more details.


You need to look into Delegates

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号