小小定时器

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) 收藏 举报