public static Form1 f = null;
private delegate void SetCallBack(string str);//定义一个委托
private SetCallBack setTextDisplaycallback; //委托声明
public Form1()
{
f = this;
InitializeComponent();
setTextDisplaycallback= new SetCallBack(setlabelDisplay);
}
private void setlabelDisplay(string s)
{
this.Label1.Text = s;
}
public void settext(string s)
{
if (this.Label1.InvokeRequired)
{
this.Label1.Invoke(setTextDisplaycallback, s);
}
else
{
this.Label1.Text = s;
}
}
Form1.f.settext(string.Format("{0}",ID));
这篇博客介绍了如何在C#中使用委托和Invoke方法确保线程安全地更新主窗体的界面数据,特别是在修改Label控件的文本时。通过定义SetCallBack委托,创建setTextDisplaycallback实例,并在settext方法中检查InvokeRequired属性,来避免跨线程访问控件引发的异常。

926

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



