计时器Timer介绍

简介: 计时器用于到指定时间调用委托(或说执行方法),或定时调用委托。 (一)   Timer类 名字空间:System.Threading 它主要提供在指定时间间隔内循环执行方法。 它的构造方法有多个,以其中一个为例: public Timer(TimerCallback callback,Ob...

计时器用于到指定时间调用委托(或说执行方法),或定时调用委托。

(一)   Timer

名字空间:System.Threading

它主要提供在指定时间间隔内循环执行方法。

它的构造方法有多个,以其中一个为例:

public Timer(TimerCallback callback,Object state,int dueTime,int period)

四个参数分别表示:

要执行的方法;包括回调方法中要使用的信息的对象;在调用执行的方法之前的延迟时间(毫秒);调用回调方法的时间间隔(毫秒)

TimerCallback的定义为:

public delegate void TimerCallback(Object state)

 

示例:

 

static   void  Main( string [] args)  
{  
    
int  k  =   19
 
    Timer timer1 
=   new  Timer( new  TimerCallback(PrintMessage), k,  2000 5000 ); 
 
    Console.Read();  

 
static   void  PrintMessage( object  objState) 
{  
    Console.WriteLine(
" ok1 "   +   "   "   +  objState.ToString());  
}  
 

 

设置2000毫秒后开始调用执行方法,每5000毫秒执行一次,并把k传递到执行方法(callback委托)

说明:2000毫秒后首次执行一次回调方法,然后每5000毫秒后再执行。

回调委托类型已经给出,在使用时可以Action委托或lambda表达式或匿名委托来定义,如下:

Action < object >  ffun  =   delegate ( object  o)
{
    Console.WriteLine(
" ok3 " + "   " + o.ToString());
};

Timer timer2 
=   new  Timer( new  TimerCallback(q  =>  Console.WriteLine( " ok2 "   +   "   "   +  q.ToString())), k,  2000 5000 );
Timer timer3 
=   new  Timer( new  TimerCallback(ffun), k,  2000 5000 );
 

 

如果终止计时器,可以使用public void Dispose()方法

例如:设置定时器,2秒钟后开始,每2秒调用一次,然后在调用5次(首次除外)后释放计时器。

static   int  k  =   1 ;
static  Timer timer1;
static   void  Main( string [] args)
{
    timer1 
=   new  Timer( new  TimerCallback(PrintMessage), k,  2000 2000 );
    Console.Read();


static   void  PrintMessage( object  objState)
{    
    Console.WriteLine(
" ok1 "   +   "   "   +  k.ToString());

    
if  (k  >   5 ) timer1.Dispose();
    k
++ ;
}

 

(二)   System.Timers.Timer

在应用程序中生成定时事件。它有一个属性:AutoReset

public bool AutoReset { get; set; }

用于设定每次指定的间隔结束时引发 Elapsed 事件,还是仅在指定的间隔第一次结束后引发该事件。

重要成员说明:

Interval:设置时间间隔,单位毫秒

Enabled:是否引发Elapsed事件

Elapsed:事件

public event ElapsedEventHandler Elapsed

其中事件类型:

public delegate void ElapsedEventHandler(Object sender,ElapsedEventArgs e)

senderTimereventargs的重要属性为:public DateTime SignalTime { get; }

用于触发计时事件的时间。

示例:

static   void  Main( string [] args)
{   
    System.Timers.Timer timer1 
=   new  System.Timers.Timer();

    timer1.Elapsed 
+=   new  System.Timers.ElapsedEventHandler(OnTimedEvent);

    timer1.Interval 
=   2001 ;
    timer1.Enabled 
=   true ;
    timer1.AutoReset 
=   true

    Console.Read();
}
 

static   void  OnTimedEvent( object  source, System.Timers.ElapsedEventArgs e)
{

    System.Timers.Timer tempTimer 
=  source  as  System.Timers.Timer;

    Console.WriteLine(tempTimer.Interval);
    Console.WriteLine(e.SignalTime);
}

 

打印内容略。

 

(三)   System.Windows.Forms.Timer

用在winform中,且必须用于窗口。略。

 

 

博客园大道至简

http://www.cnblogs.com/jams742003/

转载请注明:博客园

目录
相关文章
|
6月前
|
Python
Pygame基础1-计时器timer
Pygame基础1-计时器timer
用555定时器接成的多谐振荡电路的介绍
用555定时器构建的多谐振荡电路 一、引言 多谐振荡电路是一种能够产生多个频率的振荡信号的电路结构。它在音乐合成器、电子琴等设备中有着广泛的应用。本文将介绍一种使用555定时器构建的多谐振荡电路。 二、555定时器简介 555定时器是一种经典的集成电路,由三个功能单元组成:比较器、RS触发器和放大器。它可以用作脉冲发生器、频率分频器、定时器等。在多谐振荡电路中,我们将利用555定时器的单稳态多谐振荡特性来实现多个频率的振荡。 三、电路设计 1. 电路原理 多谐振荡电路的基本原理是利用555定时器的单稳态多谐振荡特性。单稳态多谐振荡是指当555定时器处于单稳态时,输出信号的频率会随着电容和
478 0
|
7月前
定时器
定时器
62 0
|
7月前
|
C#
[C#] 定时器的使用
[C#] 定时器的使用
50 0
|
消息中间件 Java C#
C# 三个Timer
C# 三个Timer
294 0
C# 三个Timer
|
C#
C#中的三种定时器总结
C#中的三种定时器总结
386 0
C#中的三种定时器总结