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   }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值