Стоп () Таймер в настоящее время выполняется - PullRequest
0 голосов
/ 27 ноября 2011

Я видел в другом вопросе об API таймера свинга и ваших методах, предпочтение stop ();у меня вопрос, возможно ли остановить (отменить, если util.timer) таймер, когда он в данный момент выполняется?

У меня есть таймер и мне нужно остановить поток, когда я вызываю stop (), даже если онв настоящее время работает.

1 Ответ

3 голосов
/ 27 ноября 2011

Да, можно остановить таймер Swing, позвонив по номеру stop().Вот почему этот класс имеет этот метод.Сказав это, я чувствую, что в вашей проблеме есть нечто большее, чем вы говорите нам.Но я не знаю, как таймер Swing связан с «остановкой потоков».

Редактировать
Вы заявляете:

Моя проблема в том, что у меня есть таймер свинга, и это выполняет еще один метод, который выполняется каждые 30 секунд,и я могу выполнить тот же единственный метод вручную, кстати, я хочу остановить таймер качания, когда метод вручную запущен, и когда метод вручную завершен, таймер качания запускается, потому что таймер может препятствовать другому методу.Основным является метод вручную.

Одно из возможных решений: у вас может быть таймер Swing, но вы просто заключите большую часть его кода в оператор if, управляемый логическим выражением под названием runTimer, так чтокод в actionPerformed Timer выполняется только в том случае, если логическое значение истинно.Затем запустите фоновый поток в SwingWorker, но установите для логического значения runTimer значение false перед выполнением SwingWorker, а затем установите для него значение true в методе done() SwingWorker.

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