Я пытаюсь запустить фоновый поток приложения JavaFX периодически, что изменяет некоторые свойства GUI.
Я думаю, что я знаю, как использовать классы Task
и Service
из javafx.concurrent
и не могу понять, как запустить такую периодическую задачу без использования метода Thread#sleep()
. Было бы неплохо, если бы я мог использовать некоторые методы Executor
from Executors
(Executors.newSingleThreadScheduledExecutor()
)
Я пытался запускать Runnable
каждые 5 секунд, который перезапускает javafx.concurrent.Service
, но он сразу же висит, когда вызывается service.restart
или даже service.getState()
.
Итак, я использую Executors.newSingleThreadScheduledExecutor()
, который запускает мой Runnable
каждые 5 секунд и что Runnable
запускает другой Runnable
, используя:
Platform.runLater(new Runnable() {
//here i can modify GUI properties
}
Это выглядит очень неприятно:( Есть ли лучший способ сделать это, используя классы Task
или Service
?