1、System.Windows.Forms.Timer
实现按用户定义的时间间隔引发事件的计时器。此计时器最宜用于 Windows 窗体应用程序中,并且必须在窗口中使用。Timer控件和它所在的Form属于同一个线程;
//添加Timer控件
private System.Windows.Forms.Timer Form_timer;
//
// Form_timer
//
this.Form_timer.Interval = 1000;//设置事件间隔
this.Form_timer.Tick += new System.EventHandler(this.Form_timer_Tick);//添加事件
int num = 0;
private void btn1_Click(object sender, EventArgs e)
{
Form_timer.Start();
}
private void btn2_Click(object sender, EventArgs e)
{
Form_timer.Stop();
}
//每隔1000毫秒触发一次事件
private void Form_timer_Tick(object sender, EventArgs e)
{
label1.Text = (++num).ToString();
}
2、System.Threading.Timer
提供以指定的时间间隔执行方法的机制。无法继承此类。Elapsed事件绑定相当于另开了一个线程,也就是说在Elapsed绑定的事件里不能访问其它线程里的控件(需要定义委托,通过Invoke调用委托访问其它线程里面的控件)。
Thread myThread = new Thread(Test);
myThread.IsBackground = true;
myThread.Start();
myThread.Sleep(3000);
3、System.Timers.Timer
在应用程序中生成定期事件。
System.Timers.Timer Timers_Timer = new System.Timers.Timer();
int num = 0;
private void btn1_Click(object sender, EventArgs e)
{
//手动设置Timer,开始执行
Timers_Timer.Interval = 1000;
Timers_Timer.Enabled = true;
Timers_Timer.Elapsed += new System.Timers.ElapsedEventHandler(Timers_Timer_Elapsed);
}
private void btn2_Click(object sender, EventArgs e)
{
//停止执行
Timers_Timer.Enabled = false;
Timers_Timer.Stop();
}
private void Form_timer_Tick(object sender, EventArgs e)
{
label1.Text = (++num).ToString();
}