在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>
喜欢请点个关注,谢谢大家支持;