小小定时器

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading.Tasks;
 9 using System.Windows.Forms;
10 
11 namespace TimerTest2
12 {
13     public partial class Form1 : Form
14     {
15         
16         //定义全局变量
17         public int currentCount = 0;
18         //定义Timer类
19         System.Timers.Timer timer;
20         //定义委托
21         public delegate void SetControlValue(string value);
22 
23         public Form1()
24         {
25             InitializeComponent();
26         }
27 
28         private void Form1_Load(object sender, EventArgs e)
29         {
30             InitTimer();
31         }
32         DateTime initTime;
33         /// <summary>
34         /// 初始化Timer控件
35         /// </summary>
36         private void InitTimer()
37         {
38             //设置定时间隔(毫秒为单位)
39             int interval = 1000;
40             initTime = DateTime.Now;//初始时间
41 
42 
43             timer = new System.Timers.Timer(interval);
44             //设置执行一次(false)还是一直执行(true)
45             timer.AutoReset = true;
46             //设置是否执行System.Timers.Timer.Elapsed事件
47             timer.Enabled = true;
48             //绑定Elapsed事件
49             timer.Elapsed += new System.Timers.ElapsedEventHandler(TimerUp);
50         }
51 
52 
53         /// <summary>
54        /// Timer类执行定时到点事件
55        /// </summary>
56        /// <param name="sender"></param>
57        /// <param name="e"></param>
58        private void TimerUp(object sender, System.Timers.ElapsedEventArgs e)
59        {
60            try
61            {
62                //if ((DateTime.Now-initTime).TotalSeconds>5)
63                //{
64                //    //currentCount += 1;
65                //    this.Invoke(new SetControlValue(SetTextBoxText), 0);
66                //}
67                currentCount += 1;
68                this.Invoke(new SetControlValue(SetTextBoxText),currentCount.ToString());
69            }
70            catch (Exception ex)
71            {
72                MessageBox.Show("执行定时到点事件失败:" + ex.Message);
73            }
74        }
75 
76         private void SetTextBoxText(string strValue)
77         {
78             this.textBox1.Text = this.currentCount.ToString().Trim();
79         }
80 
81         private void button1_Click(object sender, EventArgs e)
82         {
83             timer.Start();
84             var endTime = DateTime.Now;
85         }
86 
87         private void button2_Click(object sender, EventArgs e)
88         {
89             timer.Stop();
90         }
91 
92       
93     }
94 }

 

posted on 2022-06-13 16:15  泰坦尼克号上的活龙虾  阅读(36)  评论(0)    收藏  举报

导航