无论是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); }

本文介绍了在Winform和WPF应用中如何从后台线程安全地更新UI元素的方法。对于Winform应用,推荐使用控件的Invoke/BeginInvoke方法;而在WPF应用中,则应利用Dispatcher.Invoke/BeginInvoke来实现跨线程UI更新。
5024

被折叠的 条评论
为什么被折叠?



