使用子线程控制主线程中的label控件显示当前时间

首先创建一个子线程

Thread th = new Thread(GetNowTime);
th.IsBackground = true;
th.Start();

使用MethodInvoker

这个委托类型,输入参数无输出参数也无,就可以使用C#的MethodInvoker直接构造,关于MethodInvoker,MSDN给出这样一个解释“表示一个委托,该委托可执行托管代码中声明为 void 且不接受任何参数的任何方法”

private void GetNowTime()
        {
            while (true)
            {
                label17.Invoke
               (
                    new MethodInvoker
                   (
                       delegate
                       {
                           label17.Text = DateTime.Now.ToString();
                       }
                   )
                );
                //线程暂停
                Thread.Sleep(1000);
            }
        }

 

posted @ 2020-12-16 17:02  沉迷代码不能自拔  阅读(123)  评论(0编辑  收藏  举报