繁体   English   中英

Visual Studio 2015 c#计时器问题

[英]Visual Studio 2015 c# Timer problems

嘿,我只是想知道是否有人可以解决我在Windows Form应用程序中遇到的计时器问题。 这是我正在使用的代码:

private void game_Timer_Tick(object sender, EventArgs e)
    {
        while (true)
        {
            int count = 0;
            count++;
            timeLabel.Text = TimeSpan.FromSeconds(count).ToString();
        }
    }

我遇到的问题是,无论何时打开适用于此的窗口,然后此后什么也没有发生,因此我无法执行任何操作。 删除此代码时,该窗口可以正常工作,因此我不确定为什么相对于本节代码,该窗口不起作用。 有什么想法吗? 谢谢

如果要显示自计时器启动以来的秒数,请声明用于保留开始时间的字段:

private DateTime startTime;

启动计时器时分配此字段:

game_Timer.Interval = 1000; // fire event each second
startTime = DateTime.Now;
game_Timer.Start();

并在Tick处理程序中使用它:

private void game_Timer_Tick(object sender, EventArgs e)
{
    timeLabel.Text = (DateTime.Now - startTime).ToString();
}

您的代码有什么问题? 您在Tick事件处理程序中有无限循环。 因此,当事件首次触发时,您将进入此循环而永远不会退出。 而且您无能为力,因为您的应用程序忙于不断更新时间标签。

您也可以使用计数器而不是保存计时器开始时间。 但是您仍然需要字段:

private int count = 0;

和事件处理程序:

private void game_Timer_Tick(object sender, EventArgs e)
{
    timeLabel.Text = TimeSpan.FromSeconds(++count).ToString();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM