[c#] 定时器间隔1000!= 1秒?



Answers

而不是Tick事件,使用Elapsed事件。

timer.Elapsed += new EventHandler(TimerEventProcessor);

并更改TimerEventProcessor方法的签名;

private void TimerEventProcessor(object sender, ElapsedEventArgs e)
{
  label1.Text = _counter.ToString();
  _counter += 1;
}
Question

我有一个标签,应该显示我的计时器的秒(或者换句话说,我有一个变量,每增加一个计时器间隔)。 我的计时器的时间间隔设置为1000,所以标签应该每秒更新一次(还应该显示秒数)。 但标签已经在数百秒之后。 什么是1秒的适当间隔?

int _counter = 0;
Timer timer;

timer = new Timer();
timer.Interval = 1000;
timer.Tick += new EventHandler(TimerEventProcessor);
label1.Text = _counter.ToString();
timer.Start();

private void TimerEventProcessor(object sender, EventArgs e)
{
  label1.Text = _counter.ToString();
  _counter += 1;
}