【发布时间】:2019-03-27 11:43:18
【问题描述】:
所以我刚刚在 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 秒钟,然后才继续。
谢谢
【问题讨论】:
-
您不应该在大多数实际代码中使用
sleep。使用delay展示您的尝试并说明问题所在。 -
你为什么不实际使用计时器? Task.Delay 不会冻结,除非代码使用
.Wait()明确阻止等待它
标签: c#