天天看點

CODE:給c#添加SetTimeout和SetInterval函數

1.

Javascript中的SetTimeout和SetInterval函數很友善,把他們移植到c#中來。

調用示例:

CODE:給c#添加SetTimeout和SetInterval函數

執行效果:

CODE:給c#添加SetTimeout和SetInterval函數

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中使用的例子:

CODE:給c#添加SetTimeout和SetInterval函數

運作效果:

CODE:給c#添加SetTimeout和SetInterval函數

出處:http://wuchang.cnblogs.com

繼續閱讀