[英]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.