C#實現多個計時器記錄不同定時時間
本文實例為大傢分享瞭C#實現多個計時器記錄不同定時時間的具體代碼,供大傢參考,具體內容如下
1.定義Timer類、定義委托
//定義Timer類 System.Threading.Timer t3,t1,t2,t4; //定義委托 public delegate void SetControlValue(object value);
2.初始化
private void InitTimer()//初始化 { t1= new System.Threading.Timer(new TimerCallback(T1), null, Timeout.Infinite, 1000); t2 = new System.Threading.Timer(new TimerCallback(T2), null, Timeout.Infinite, 1000); t3 = new System.Threading.Timer(new TimerCallback(T3), null, Timeout.Infinite, 1000); t4 = new System.Threading.Timer(new TimerCallback(T4), null, Timeout.Infinite, 1000); }
3.因為要實現定時時間的不同,所以要定義不同的整型變量時、分、秒:
//一號機 int hour = 0; int minute = 0; int second = 0; //二號機 int hour2 = 0; int minute2 = 0; int second2 = 0; //三號機 int hour3 = 0; int minute3 = 0; int second3 = 0; //四號機 int hour4 = 0; int minute4 = 0; int second4 = 0;
4.時間執行方法並輸出:
private void T4(object state)// 時間T方法 { try { second4++; if (second4 == 60) { minute4++; second4 = 0; } if (minute4 == 60) { hour4++; minute4 = 0; } this.Invoke(new SetControlValue(S4), second4); this.Invoke(new SetControlValue(S4), minute4); this.Invoke(new SetControlValue(S4), hour4); } catch { } } private void S4(object value) { textBox4.Text = hour4.ToString() + "時" + minute4.ToString() + "分" + second4.ToString() + "秒"; } private void T2(object state) { try { second2++; if (second2 == 60) { minute2++; second2 = 0; } if (minute2 == 60) { hour2++; minute2 = 0; } this.Invoke(new SetControlValue(S2), second2); this.Invoke(new SetControlValue(S2), minute2); this.Invoke(new SetControlValue(S2), hour2); } catch { } } private void S2(object value) { textBox2.Text = hour2.ToString() + "時" + minute2.ToString() + "分" + second2.ToString() + "秒"; }
5.定時器的執行和停止,分別用{你定義的.Change(0, 1000)}、{你定義的.Change(0, 1000)}表示,如:
t1.Change(0, 1000); t1.Change(Timeout.Infinite, 1000);
6.效果圖:
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- C#中定時任務被阻塞問題的解決方法
- C#中Timer實現Tick使用精度的問題
- C#四種計時器Timer的區別和用法
- C#線程池ThreadPool用法簡介
- Windows自動執行python腳本操作步驟