C# winform子线程更新UI
程序员文章站
2022-06-10 14:30:53
...
在winform界面开发时,肯定会遇到子线程更新UI的情况,以前我都是这样写的:
private void WorkThread2()
{
while (true)
{
UpdateLabel1(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
Thread.Sleep(500);
}
}
private void UpdateLabel1(string msg)
{
if (this.label1.InvokeRequired)//如果调用控件的线程和创建创建控件的线程不是同一个则为True
{
this.label1.Invoke(new Action<string>(UpdateLabel1), new object[] { msg });
}
else
{
this.label1.Text = msg;
}
}
现在可以更简洁一点:
private void WorkThread()
{
while (true)
{
this.label1.BeginInvoke((MethodInvoker)delegate
{
label1.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
});
Thread.Sleep(500);
}
}
上一篇: xml文件的结构解读第1/2页
下一篇: php扩展的安装及连接mongo测试