У меня есть программа, единственная цель которой - управлять java.awt.Robot
бесконечным циклом до тех пор, пока не будет выполнено условие выхода.Robot.delay (int) по сравнению с Thread.sleep (long)
Робот выполняет ряд действий в быстрой последовательности, для чего требуется стандартная задержка пользовательского интерфейса между ними. Для этого я использую java.awt.Robot.setAutoDelay(int ms)
, который, как представляется, предназначен именно для этой цели.
В то же время мне нужно вставить произвольно большие задержки для завершения операций. Кажется, у меня есть выбор между использованием java.awt.Robot.delay(int ms)
или java.lang.Thread.sleep(long ms)
, и мне любопытно, каковы различия между ними, и что я должен использовать.
Мой инстинкт кисти должен был держать все мои операции в одном и том же «месте» и использовать java.awt.Robot.delay(int ms)
. Однако, подумав об этом на мгновение, я предположил, что java.awt.Robot.delay(int ms)
выполнит операцию над стеком операций робота, и если бы это были мои единственные задержки в бесконечном цикле, я могу очень быстро и бесполезно генерировать абсурдно большая очередь событий для робота.
В этот момент, я проверил the API for java.awt.Robot.delay(int ms)
, который сказал мне следующее:
Спит за указанное время. Чтобы поймать любые
InterruptedException
s, которые происходят, вместо этого может использоватьсяThread.sleep()
.
Не сумев получить какое-либо полезное понимание этого вопроса, я решил спросить вас, ребята.