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          private  static Timer CheckUpdatetimer =  new Timer();
 7 
 8          //  检查更新锁
 9          private  static  int CheckUpDateLock = 0;
10 
11          ///
12           ///  设定数据检查Timer参数
13           ///
14          internal  static  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 =  true;
24         }
25 
26          ///
27           ///  timer事件
28           ///
29           ///
30           ///
31          private  static  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              lock (LockObject)
45             {
46                 CheckUpDateLock = 0;
47             }            
48         }
49 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值