在label控件中显示系统当前时间
在winform 控件中实时显示系统的当前时间,实现的效果如图所示。
要实现这项功能,需要用到DateTime结构中的now 属性,使用这个属性可以轻松访问到当前系统的时间。
DateTime Time_Now=DateTime.now;
string Time_show=Time_Now.tostring();
线程的使用
使用线程可以后台运行相应的处理,不至于winform窗体在频繁刷新的时候卡死。
声明新的进程如下:
Thread th = new Thread(GetNowTime);//声明新的进程
th.IsBackground = true; //设置为后台线程
th.Start(); //开启线程
invoke语法
在多线程编程中,经常需要在工作进程 中更新界面显示,在多线程中直接调用界面控件的方法是错误的。 Invoke和Begininvoke是为此类问题专门设计的,便于在多线程中更新界面的显示。
Invoke( )的作用是在应用程序的主线程执行指定的委托。也可以在辅助线程 中修改UI线程 (或主线程)对象的属性。
在使用时候,将工作进程中涉及更新界面的代码进行封装为一个方法,通过Invoke和Begininvoke调用。
public void GetNowTime()
{
while (true)
{
this.Invoke(
(MethodInvoker)delegate ()
{
this.Refresh();//刷新窗口界面
label1.Text =
DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒");
Thread.Sleep(1000);//进程挂起1秒钟
});
}
}