显示每15秒循环一次的计时器

时间:2013-05-24 15:35:51

标签: c# winforms

我制作了这段代码,但屏幕上显示的时间循环与确切的经过时间之间存在延迟。

Timer t = new Timer();
int time = 15;
string timestr;
t.Interval = 1000;
t.Tick += new EventHandler(Time);

void Time(object sender, EventArgs e)
{
    if (time == 0)
    { time = 15; }
    if (time != 0)
    {
        time--;
        timestr = time.ToString();
        label.Text = timestr;
    }
}

2 个答案:

答案 0 :(得分:2)

我的猜测是你关闭一秒钟,因为计时器在达到间隔值之前不会触发第一个事件。

快速解决方法是在启动时自行触发事件:

t.Start();
Time(t, EventArgs.Empty);

答案 1 :(得分:0)

我想你需要试试这个。在Time函数结束之前添加Application.DoEvents()行。

void Time(object sender, EventArgs e)
{
   if (time == 0)
   { time = 15; }
   if (time != 0)
   {
       time--;
       timestr = time.ToString();
       label.Text = timestr;
   }
   Application.DoEvents();
}