WPF调用线程 解决“调用线程无法访问此对象,因为另一个线程拥有该对象“问题

来源:互联网 发布:如何下载英语软件 编辑:程序博客网 时间:2024/05/22 15:31

无论是winform还是wpf,后台线程是无法访问和修改UI层的。


在Winform中,我们需要调用控件的 Invoke/BeginInvoke 方法来将代码扔回至UI线程执行。

而WPF是需要调用UI线程的 Dispatcher.Invoke/BeginInvoke 来做。

this.Dispatcher.Invoke(new Action(()=>{                   this.Visibility = Visibility.Visible;                }));

或者:


this.Invoke(new Action(() => {this.Visibility = Visibility.Visible; }));
在winform中,也可以这样解决:
private delegate void ControlsRemove();if (panel1.InvokeRequired){     ControlsRemove call = delegate()     {           //this.panel1.Controls.Clear();     };     panel1.Invoke(call);}


原创粉丝点击