你如何在C#中使用Timers在做某事之前等待一段时间?

时间:2012-02-12 19:25:26

标签: c# .net timer

有人告诉我,与使用Thread.Sleep(int)导致程序在继续之前等待一段时间相反,我应该使用计时器。

我想知道应该怎么做?有人可以给我一个简短的例子吗?

2 个答案:

答案 0 :(得分:5)

使用

创建计时器
Timer _timer = new Timer();

使用

初始化计时器
_timer.Interval = 5000; // Time in milliseconds.
_timer.Tick += Timer_Tick;
_timer.Start();

计时器刻度事件处理程序

void Timer_Tick(object sender, EventArgs e)
{
    // Do the timed work here
}

您可以使用

停止计时器
_timer.Stop();

<强>更新

您可以将System.Windows.Forms.Timer - 组件添加到Form(准确地说是其组件托盘)。这样做的好处是可以从属性窗口设置其属性和Tick事件。

另请查看其他计时器的文档:System.Threading.TimerSystem.Timers.TimerSystem.Web.UI.TimerSystem.Windows.Threading.DispatcherTimer。 Abhishek Sur写了一篇很好的比较here

答案 1 :(得分:2)

 myTimer.Tick += new EventHandler(TimerEventProcessor);

 // Sets the timer interval to 5 seconds.

myTimer.Interval = 5000;

myTimer.Start();

这将导致TimeEventProcessor在5秒内执行而不会阻塞当前线程。