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 ///
34 /// 初始化Timer控件
35 ///
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 ///
54 /// Timer类执行定时到点事件
55 ///
56 ///
57 ///
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 }