在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#實現定時器的三種方法](http://p2.ttnews.xyz/loading.gif)
關鍵字: 定時器 timer timerGetTime