当前位置:  开发笔记 > 编程语言 > 正文

Visual Studio 2015 c#计时器问题

如何解决《VisualStudio2015c#计时器问题》经验,为你挑选了1个好方法。

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

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

我遇到的问题是,每当适用的窗口打开,然后没有任何反应,我无法做任何事情.删除此代码时,窗口工作正常,所以我不确定为什么它不适用于这部分代码.有什么想法吗?谢谢



1> Sergey Berez..:

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

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();
}

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有