在.net中有三種計時器:
它直接繼承自componet。timer控制項只有繫結了tick事件和設定enabled=true後才會自動計時,停止計時可以用stop()方法控制,通過stop()停止之後,如果想重新計時,可以用start()方法來啟動計時器。timer控制項和它所在的form屬於同乙個執行緒;
system.timers.timer類:定義乙個system.timers.timer物件,然後繫結elapsed事件,通過start()方法來啟動計時,通過stop()方法或者enable=false停止計時。autoreset屬性設定是否重複計時(設定為false只執行一次,設定為true可以多次執行)。elapsed事件繫結相當於另開了乙個執行緒,也就是說在elapsed繫結的事件裡不能訪問其它執行緒裡的控制項(需要定義委託,通過invoke呼叫委託訪問其它執行緒裡面的控制項)。
在上面所述的三種計時器中,第一種計時器和它所在的form處於同乙個執行緒,因此執行的效率不高;而第二種和第三種計時器執行的方法都是新開乙個執行緒,所以執行效率比第一種計時器要好,因此在選擇計時器時,建議使用第二種和第三種。
下面是三種定時器使用的例子:
設計介面:
後台**:
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.windows.forms;
9 10 namespace timerdemo
11 20
21 private void frmmain_load(object sender, eventargs e)
22
28 29 private void timer_tick(object sender, eventargs e)
30
34 35 private void btn_start_click(object sender, eventargs e)
36
40 41 private void btn_stop_click(object sender, eventargs e)
42
46 }
47 }
設計介面:
後台**:
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.windows.forms;
9 10 namespace timerstimer
11 25
26 private void form1_load(object sender, eventargs e)
27
30 31 /// 32 /// 初始化timer控制項
33 ///
34 private void inittimer()
35
46 47 /// 48 /// timer類執行定時到點事件
49 ///
50 ///
51 ///
52 private void timerup(object sender, system.timers.elapsedeventargs e)
53
59 catch (exception ex)
60
63 }
64 65 /// 66 /// 設定文字框的值
67 ///
68 ///
69 private void settextboxtext(string strvalue)
70
73 74 private void btn_start_click(object sender, eventargs e)
75
78 79 private void btn_stop_click(object sender, eventargs e)
80
83 }
84 }
設計介面:
後台**:
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.windows.forms;
9 using system.threading;
10 11 namespace threading.timer
12 26
27 private void frmmain_load(object sender, eventargs e)
28
31 32 /// 33 /// 初始化timer類
34 ///
35 private void inittimer()
36
39 40 /// 41 /// 定時到點執行的事件
42 ///
43 ///
44 private void timerup(object value)
49 50 /// 51 /// 給文字框賦值
52 ///
53 ///
54 private void settextboxvalue(object value)
55
58 59 /// 60 /// 開始
61 ///
62 ///
63 ///
64 private void btn_start_click(object sender, eventargs e)
65
69 70 /// 71 /// 停止
72 ///
73 ///
74 ///
75 private void btn_stop_click(object sender, eventargs e)
76
80 }
81 }
C 裡面的三種定時計時器 Timer
在.net中有三種計時器 1 system.windows.forms命名空間下的timer控制項,它直接繼承自componet。timer控制項只有繫結了tick事件和設定enabled true後才會自動計時,停止計時可以用stop 方法控制,通過stop 停止之後,如果想重新計時,可以用sta...
C 裡面的三種定時計時器 TImer
timer控制項只有繫結了tick事件和設定timer.enabled ture後才會自動計時,停止計時可以用stop 方法控制,通過stop 方法來啟動計時器。timer控制項和它所在的form屬於同乙個執行緒 system.timers.timer類 定義乙個system.timers.time...
C 裡面的三種定時計時器 TIMER
在.net中有三種計時器 1 system.windows.forms命名空間下的timer控制項,它直接繼承自componet。timer控制項只有繫結了tick事件和設定enabled true後才會自動計時,停止計時可以用stop 方法控制,通過stop 停止之後,如果想重新計時,可以用sta...