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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014117094/article/details/47776165

在winform或者wpf,后台线程是无法访问和修改UI层的。

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

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

this.Dispatcher.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);
}


展开阅读全文

没有更多推荐了,返回首页