Отрицательные задержки в Java Swing Timers - PullRequest
4 голосов
/ 11 декабря 2010

Я только что натолкнулся на это в каком-то коде, и я немного сбит с толку.

 timer = new Timer(-10, new
         ActionListener()
         {
            //Do some stuff
         });

Каково значение отрицательной (или нулевой) задержки в объекте таймера свинга?Согласно API, первое событие запускается немедленно, но в чем разница, скажем, от -10 до минус -100?В моем коде они, кажется, функционируют по-разному, но я не могу точно определить, что изменится в объекте Timer.

1 Ответ

5 голосов
/ 11 декабря 2010

Javadoc говорит: «Если задержка меньше или равна нулю, таймер срабатывает, как только он запускается.» .

Так что ответ таков: не должно быть никакой разницы. Видимое различие, которое вы видите, вероятно, является лишь следствием неопределенности в вашем приложении и / или системе времени выполнения.

Followup

Итак, каждое последующее событие запускается сразу же после предыдущего, с какой-либо явной «задержкой» только продукта системы?

Задержка, вероятно, только из-за неопределенности переключения потоков и того факта, что таймер Swing использует один поток для выполнения прослушивателей событий для всех таймеров.

Вероятно, вам следует прочитать javadoc для java.swing.Timer и java.util.Timer, а также дополнительную документацию, на которую они ссылаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...