C#实现定时器的三种方法

在C#里关于定时器类就有三个

1、System.Windows.Forms.Timer

2、System.Threading.Timer

3、定义在System.Timers.Timer

下面对这三个类进行讲解。

System.Windows.Forms.Timer

计时器最宜用于 Windows 窗体应用程序中,并且必须在窗口中使用,适用于单线程环境,

在此环境中, UI 线程用于执行处理。它要求用户代码提供 UI 消息泵, 并且始终从同一线程操作, 或将调用封送到其他线程。Windows 窗体计时器组件是单线程的, 且限制为55毫秒的准确度,准确性不高。

<code>

private

System.Windows.Forms.Timer timer; timer=

new

System.Windows.Forms.Timer(); timer.Tick+=

new

EventHandler(HandleTime); timerGetTime.Interval =

1000

; timerGetTime.Enabled =

true

; timerGetTime.Start();

public

void

HandleTime

(Object myObject, EventArgs myEventArgs)

{ lbl_Time.Text = DateTime.Now.ToString(

"yyyy-MM-dd HH:mm:ss"

); } timerGetTime.Stop();/<code>

System.Timers.Timer

<code>System.Timers.Timer t = 

new

System.Timers.Timer(

1000

); t.Elapsed +=

new

System.Timers.ElapsedEventHandler(Execute); t.AutoReset =

true

; t.Enabled =

true

; t.Start();

public

void

Execute

(

object

source, System.Timers.ElapsedEventArgs e

)

{ t.Stop(); MessageBox.Show(

"OK!"

); t.Start(); }/<code>

System.Threading.Timer

线程计时器也不依赖窗体,是一种简单的、轻量级计时器,它使用回调方法而不是使用事件,并由线程池线程提供支持

<code>

class

Program

{

int

TimesCalled =

0

;

void

Display

(

object

state

)

{ Console.WriteLine(

"{0} {1} keep running."

, (

string

)state, ++TimesCalled); }

static

void

Main

(

string

[] args

)

{ Program p =

new

Program(); System.Threading.Timer myTimer =

new

System.Threading.Timer(p.Display,

"Processing timer event"

,

2000

,

1000

); Console.WriteLine(

"Timer started."

); Console.ReadLine(); } }/<code>

喜欢请点个关注,谢谢大家支持;


C#实现定时器的三种方法


分享到:


相關文章: