微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#中timer类的用法

C#中timer类的用法

关于C#中timer类  在C#里关于定时器类就有3个   
1.定义在System.Windows.Forms里   
2.定义在System.Threading.Timer类里   
3.定义在System.Timers.Timer类里 

System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用API  SetTimer实现的。它的主要缺点是计时不精确,而且必须有消息循环,Console  Application(控制台应用程序)无法使用。   
  
System.Timers.Timer和System.Threading.Timer非常类似,它们是通过.NET  Thread  Pool实现的,轻量,计时精确,对应用程序、消息没有特别的要求。System.Timers.Timer还可以应用于WinForm,完全取代上面的Timer控件。它们的缺点是不支持直接的拖放,需要手工编码。

例: 
使用System.Timers.Timer类 
//实例化Timer类,设置间隔时间为10000毫秒; 
System.Timers.Timer t = new System.Timers.Timer(10000);
//到达时间的时候执行事件;
t.Elapsed += new System.Timers.ElapsedEventHandler(theout); 
t.AutoReset = true;//设置是执行一次(false)还是一直执行(true); 
t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;

====================================
自己写的一个用System.Timer类的方法

 1  public  class BF_CheckUpdate
 2     {
 3          private  static  object LockObject =  new Object();
 4 
 5          //  定义数据检查Timer
 6          static Timer CheckUpdatetimer =  new Timer();
 7 
 8           检查更新锁  9          int CheckUpDateLock = 0;
10 
11          /// 12            设定数据检查Timer参数
13  ///
14          internal  void GetTimerStart()
15         {
16               循环间隔时间(10分钟) 17             CheckUpdatetimer.Interval = 600000;
18               允许Timer执行 19             CheckUpdatetimer.Enabled =  true;
20               定义回调 21             CheckUpdatetimer.Elapsed +=  new ElapsedEventHandler(CheckUpdatetimer_Elapsed);
22               定义多次循环 23             CheckUpdatetimer.AutoReset =  24         }
25 
26          27   timer事件
28  29  30  31          void CheckUpdatetimer_Elapsed( object sender, ElapsedEventArgs e)
32         {
33              加锁检查更新锁 34              lock (LockObject)
35             {
36                  if (CheckUpDateLock == 0) CheckUpDateLock = 1;
37                  else  return;
38             }         
39           
40             More code goes here

.
41             具体实现功能方法 42            Check();
43                 解锁更新检查锁 44              45             {
46                 CheckUpDateLock = 0;
47             }            
48         }
49 }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐