1.
Javascript中的SetTimeout和SetInterval函數很友善,把他們移植到c#中來。
調用示例:
執行效果:
2.
實作代碼:
1 /// <summary>
2 /// 在指定時間過後執行指定的表達式
3 /// </summary>
4 /// <param name="interval"> 事件之間經過的時間(以毫秒為機關) </param>
5 /// <param name="action"> 要執行的表達式 </param>
6 public static void SetTimeout( double interval, Action action)
7 {
8 System.Timers.Timer timer = new System.Timers.Timer(interval);
9 timer.Elapsed += delegate ( object sender, System.Timers.ElapsedEventArgs e)
10 {
11 timer.Enabled = false ;
12 action();
13 };
14 timer.Enabled = true ;
15 }
16 /// <summary>
17 /// 在指定時間周期重複執行指定的表達式
18 /// </summary>
19 /// <param name="interval"> 事件之間經過的時間(以毫秒為機關) </param>
20 /// <param name="action"> 要執行的表達式 </param>
21 public static void SetInterval( double interval, Action < ElapsedEventArgs > action)
22 {
23 System.Timers.Timer timer = new System.Timers.Timer(interval);
24 timer.Elapsed += delegate ( object sender, System.Timers.ElapsedEventArgs e)
25 {
26 action(e);
27 };
28 timer.Enabled = true ;
29 }
30
3.
由于System.Timers.Timer 是“基于伺服器的 Timer 是為在多線程環境中用于輔助線程而設計的”,是以在winform中使用時如果要修改UI對象就要注意了,給個在winform中使用的例子:
運作效果:
出處:http://wuchang.cnblogs.com