У меня есть программа, единственной целью которой является управление java.awt.Robot
в бесконечном цикле до тех пор, пока не будет выполнено условие выхода.
Робот выполняет ряд действий в быстрой последовательности, для которых требуется стандартный пользовательский интерфейсзадержка между ними.Для этого я использую 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)
поместит операцию в стек операций робота для завершения, и если бы это были мои единственные задержки в бесконечном цикле, я мог бы очень быстро и без необходимости генерироватьневероятно большая очередь событий для робота.
В этот момент я проверил API для java.awt.Robot.delay(int ms)
, который сказал мне следующее:
Спит в течение указанного времени.Чтобы поймать любые InterruptedException
s, которые могут возникнуть, вместо этого можно использовать Thread.sleep()
.
Не сумев получить полезного понимания этого вопроса, я решил спросить вас, ребята.