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#實現定時器的三種方法


分享到:


相關文章: