繁体   English   中英

Thread.sleep() / robots.delay() 更准确?

[英]Thread.sleep() / robot.delay() more accurate?

我想使用 Robot 类为在线游戏编写机器人。 我现在的问题是,方法 Thread.sleep() 或 robots.delay() 是不准确的。 在游戏之外,它们工作得非常好,偏差大约只有 2 - 3 毫秒。 但是当游戏聚焦时,这些方法会有+5 - +20 ms 甚至更多的偏差。 可悲的是,这足以使我的机器人无法使用。 有没有办法让这些方法更准确? 或者有没有其他方法可以解决这个问题?

没有区别

如果您浏览JDK 的源代码Robot.delay()最终会调用Thread.sleep()

public void delay(int ms) {
    checkDelayArgument(ms);
    Thread thread = Thread.currentThread();
    if (!thread.isInterrupted()) {
        try {
            Thread.sleep(ms);
        } catch (final InterruptedException ignored) {
            thread.interrupt(); // Preserve interrupt status
        }
    }
}

您可能可以为 Java 进程提供比游戏更高的优先级,任务在分配给调度程序后可能会更快地执行。

暂无
暂无

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

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