Пока это происходит в потоке приложения JavaFX, и регистрация слушателя происходит до того, как вы «вернете элемент управления обратно в JavaFX» после проверки состояния (т. Е. Это происходит в том же обработчике события, Platform.runLater
runnable / change listener,и т. д.), вы будете уведомлены об изменении.
Вот причина, по которой: Изменения в свойстве Task.state
выполняются в потоке приложения, который является потоком, в котором работает ваш код. Это означает, что до тех пор, пока вы не вернете элемент управления в JavaFX, он не сможет выполнить обновление свойства, и после добавления прослушивателя значение, содержащееся в этом свойстве, останется таким же, как и прочитанное вами.