计时器停止整个程序

时间:2019-03-27 11:43:18

标签: c#

所以我刚刚在WinForms中制作了一个简单的蛇游戏,而我只剩下一个问题。我的想法是,我要实施一次加电,以加速播放器10秒钟。我试过使用线程。 sleep方法,用于创建计时器,但它会使整个程序休眠。我也尝试过使用task.delay方法,但没有成功。

我是用错误的方式处理此问题,还是我只是缺少一些东西?您有什么技巧可以帮助我走上正确的道路?我对此很陌生,所以这可能很容易解决。

    var watch = new Stopwatch();
    watch.Start();

    using (var task = Task.Delay(10000))
    {
        speedUp = true;
        task.Wait();
    }

    watch.Stop();
    speedUp = false;

这是我对延迟的尝试。但是它似乎会在整个程序暂停10秒后再继续。

谢谢

1 个答案:

答案 0 :(得分:2)

您可能希望通过查看游戏循环中的时钟来查看过去的时间。属性Environment.TickCount为您提供自上次启动以来的毫秒数,或者您可以使用DateTime or Timespan进行操作。现在,您无需检查睡眠状态,而是可以检查自启动电源以来是否已经过了10,000毫秒。这样一来,任何东西都不会被阻塞,并且在10秒内收集多次通电不会破坏停用过程。

相关问题