无论是winform还是wpf,后台线程是无法访问和修改UI层的。
在Winform中,我们需要调用控件的 Invoke/BeginInvoke 方法来将代码扔回至UI线程执行。
而WPF是需要调用UI线程的 Dispatcher.Invoke/BeginInvoke 来做。
this.Dispatcher.Invoke(new Action(()=>{
this.Visibility = Visibility.Visible;
}));
或者:
在winform中,也可以这样解决:this.Invoke(new Action(() => { this.Visibility = Visibility.Visible; }));
private delegate void ControlsRemove(); if (panel1.InvokeRequired) { ControlsRemove call = delegate() { //this.panel1.Controls.Clear(); }; panel1.Invoke(call); }