C# winform子线程更新UI

匿名 (未验证) 提交于 2019-12-02 23:43:01

在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);             }         }

文章来源: https://blog.csdn.net/jichao1010/article/details/91993365
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!