有人告诉我,与使用Thread.Sleep(int)
导致程序在继续之前等待一段时间相反,我应该使用计时器。
我想知道应该怎么做?有人可以给我一个简短的例子吗?
答案 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.Timer,System.Timers.Timer,System.Web.UI.Timer和System.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秒内执行而不会阻塞当前线程。