C#定时器的三种使用方式

定时器,在开发中的用途以及重要性不言而喻,特别是在我们的winform等客户端程序中。

C#向我们提供了三种计时器的实现,在此我们简单的介绍一下。.

具体的实现代码如下,可以根据需要选择使用。

实现代码:

//第一种:System.Windows.Forms.Timer
    private void button1_Click(object sender, EventArgs e)
        {
            //单线程
            System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
            //1秒间隔
            timer.Interval = 1000;
            //执行事件
            timer.Tick += (s, e1) =>
            {
                listBox1.Items.Add("Forms Timer");
            };
            //开始执行
            timer.Start();
            //Thread.Sleep(3000);
            //结束执行
            timer.Stop();
        }
 //第二种:System.Timers.Timer
        private void button2_Click(object sender, EventArgs e)
        {
            //多线程
            System.Timers.Timer timer = new System.Timers.Timer();
            //1秒间隔
            timer.Interval = 1000;
            //执行事件
            timer.Elapsed += (s, e1) =>
            {
                listBox1.Invoke(new Action(() =>
                {
                    listBox1.Items.Add("Timers Timer");
                }));
            };
            //开始执行
            timer.Start();
            // Thread.Sleep(3000);
            //结束执行
            timer.Stop();
        }
//第三种:System.Threading.Timer
        private void button3_Click(object sender, EventArgs e)
        {
            //多线程
            //初始化时即设定好启动时间、执行事件、间隔等参数
            System.Threading.Timer timer = new System.Threading.Timer(s =>
            {
                listBox1.Invoke(new Action(() =>
                {
                    listBox1.Items.Add("Threading Timer");
                }));

            }, null, 0, 1000);
            // Thread.Sleep(3000);
            //结束执行
            timer.Change(-1, -1);
            timer.Dispose();
        }

以上三种定时的区别,大家可以自行运行测试下查看效果。