java.awt.Robot
終了条件が満たされるまで、を無限ループで駆動することを唯一の目的とするプログラムがあります。
ロボットは多数のアクションをすばやく連続して実行しますが、これらのアクション間には標準のUI遅延が必要です。このために、私は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)
、ロボットの操作のスタックに操作が完了すると思いました。それが無限ループでの唯一の遅延である場合、非常に迅速に、そして不必要に、途方もなく大きなものを生成する可能性があります。ロボットのイベントのキュー。
その時点で、APIjava.awt.Robot.delay(int ms)
をチェックしました。これにより、次のことがわかりました。
指定された時間スリープします。
InterruptedException
発生するをキャッチするには、Thread.sleep()
代わりにを使用できます。
問題についての有用な洞察を得ることができなかったので、私は皆さんに尋ねることを選びました。