winfrom后台怎么写定时器?

winfrom后台怎么写定时器?

例子:

        private void label5_Click(object sender, EventArgs e)
        {
            string time = DateTime.Now.ToString();
            this.label5.Text = time;
        }

        private void button8_Click(object sender, EventArgs e)
        {
            Timer timer = new Timer();
            timer.Interval = 1000;//定时1000毫秒(一秒)
            timer.Elapsed += label5_Click;
            timer.Start();//启动定时任务
            //停止定时任务
            //timer.stop();
            //加载时 取消跨线程检查,防止报错()
            Control.CheckForIllegalCrossThreadCalls = false;
        }

这里Control.CheckForIllegalCrossThreadCalls = false;是防止报(System.InvalidOperationException:“线程间操作无效: 从不是创建控件“label1”的线程访问它。”)的错误。

异步执行也可以

例子:

        private void button10_Click(object sender, EventArgs e)
        {
            System.Timers.Timer timer = new Timer();
            timer.Interval = 1000;
            timer.Elapsed += label6_Click;
            timer.Start();
        }

        private void label6_Click(object sender, EventArgs e)
        {
            label6.BeginInvoke(new Action(() =>
            {
                label6.Text = DateTime.Now.ToString("yyyy/HH/dd HH:mm:ss");
            }));
        }

其实winfrom有自带的“timer”。

 

在设定执行时间间隔

            timer1.Interval = 1000;

在timer1.Tick+=写完后两下tab键自动生成委托事件

 

 

 之后你就可以在委托时间里写你想写的方法了。

posted @ 2021-07-25 09:24  我的未来方程式i  阅读(51)  评论(0编辑  收藏  举报