如下的方法也是平时常用的
private delegate void ShowMsg(string strMsg);
private ShowMsg SM;
private void SetLabel(string strMsg)
{
this.label5.Text = strMsg;//这里可以更新你需要更新的控件
}
初始化的时候绑定:
SM += new ShowMsg(SetLabel);
使用:
void RunTime()
{
while (timeFlag)
{
try
{
Thread.Sleep(1000);
nowtime = DateTime.Now.ToLongTimeString();//.ToString("HH:mm:ss");
this.Invoke(SM,nowtime);//使用委托,更新主线程中的控件值
}
catch
{
}
}
}

本文介绍了一种使用委托在后台线程中更新Windows窗体应用程序UI的方法。通过定义一个私有的委托类型并实例化它,可以在后台线程中安全地调用主线程上的UI更新操作。
1738

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



