通常,使用while循环作为计时/等待机制是一种好习惯。如果您需要高精度且只需几毫秒就需要阻止它。
我目前正在使用Java / Scala编写游戏循环,但这个问题并非针对特定情况。我理解总是取决于环境是否是一个好主意,但我想在合理的情况下它是否合理地成为一个好主意。
编辑:
如果您认为这是一个坏主意,请提供一个可以保持高精度的替代方案。简单地使用系统计时器可以给出一个巨大的变化(至少在Java中),这是一个交易破坏者。
答案 0 :(得分:3)
创建一个延迟执行的循环是延迟线程的最糟糕的方法之一,因为它消耗CPU。您可以使用:
而不是这样做Thread.sleep(milliseconds);
根本不消耗CPU。但是,您应该记住,使用线程的函数并不是绝对准确的,因此睡眠函数参数中给出的时间可能比您输入的时间多一些,但它很少,很容易被忽略。
答案 1 :(得分:1)
执行时间不是恒定的,取决于许多因素,如CPU速度,OS(CPU的时间共享产生不同的结果)等。此外,一台机器可以执行每秒10e9个周期,毫秒是时间之间的巨大.Hence使用循环计时器是一个非常糟糕的主意,尝试使用你的语言或Os'而不是计时器。