因为Winform应用程序是单线程的。对于某一个控件来说,只有创建该控件的线程才能修改它的值。对Winform来说,在窗体中拖一个控件,它由程序的主线程创建。因而,如果我们又另开一个线程,那么如果我们想要在这个线程中直接去修改该控件的值,就会报错。
那么如果,我们仍然想要改控件的值,该如何做呢?
我们可以通过,在这个子线程中,通过this.Invoke() 或 this.BeginInvoke()的方式通过执行委托的方式,在委托里去修改,就可以。
代码如下:
This.Invoke(new Action(()=>{
Label1.Text=”您好!”;
}));
在Winform应用中,由于控件操作必须在创建它的线程中进行,因此当尝试从其他线程修改控件属性时会报错。解决方法是使用控件的Invoke或BeginInvoke方法,通过委托在主线程中安全地修改控件的值。例如,可以使用`this.Invoke(new Action(() => { Label1.Text = 您好!; }
8421

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



