Интерфейс Worker<V>
- Все известные реализующие классы:
-
ScheduledService,Service,Task
public interface Worker<V> Объект Worker выполняет некоторую работу в одном или нескольких фоновых потоках, состояние которого наблюдаемо и доступно приложениям JavaFX, а также используется из основного потока приложения JavaFX. Этот интерфейс в первую очередь реализуется как Task, так и Service, предоставляя общий API между обоими классами, что упрощает библиотекам и фреймворкам предоставление работников, которые хорошо работают при разработке пользовательских интерфейсов.
Работник может быть или не быть повторно используемым в зависимости от реализации. Например, Task не является повторно используемым, в то время как Service является.
Работник имеет четко определённый жизненный цикл. Каждый Работник начинается в состоянии Worker.State.READY. Когда Работник запланирован для работы (например, когда метод Service.start() сервиса Service вызывается), он переходит в состояние Worker.State.SCHEDULED. Даже Работники, которые технически не запланированы, но запущены немедленно (например, с помощью FutureTask.run()) будут переходить через состояние Worker.State.SCHEDULED по пути к состоянию Worker.State.RUNNING.
Когда Работник фактически выполняет свою работу, состояние переходит в Worker.State.RUNNING. Если Работник завершается нормально, он заканчивается в состоянии Worker.State.SUCCEEDED, и результат Работника будет установлен как свойство value. Однако, если во время выполнения Работника произойдёт исключение, состояние будет установлено в Worker.State.FAILED, а свойство exception будет установлено на возникшее исключение.
В любое время до завершения Работника (то есть, если состояние ещё не Worker.State.SUCCEEDED или Worker.State.FAILED), разработчик может вызвать метод cancel(). Если он вызван, Работник прекратит выполнение (если это возможно, включая использование Thread.interrupt), и состояние изменится на Worker.State.CANCELLED.
Единственным допустимым начальным состоянием для Работника является Worker.State.READY, а допустимые конечные состояния — Worker.State.CANCELLED, Worker.State.SUCCEEDED и Worker.State.FAILED. Свойство running устанавливается в значение true, когда состояние равно Worker.State.SCHEDULED или Worker.State.RUNNING.
Прогресс Работника можно отслеживать через три разных свойства: totalWork, workDone и progress. Эти свойства устанавливаются фактической реализацией интерфейса Worker, но могут быть наблюдаемы кем угодно. workDone — это число от -1 (означающее неопределённый прогресс) до totalWork включительно. Когда workDone == totalWork, progress будет 100% (или 1). totalWork будет числом от -1 до Long.MAX_VALUE включительно. Прогресс будет либо -1 (означающее неопределённость), либо значением от 0 до 1 включительно, представляющим от 0% до 100%.
Работник, находящийся в состояниях Worker.State.READY или Worker.State.SCHEDULED, всегда будет иметь workDone и progress, установленные в -1. Работник, находящийся в состоянии Worker.State.SUCCEEDED, всегда будет иметь workDone == totalWork и progress == 1. В любом другом состоянии значения этих свойств могут быть любыми значениями в соответствующих допустимых диапазонах.
- С:
- JavaFX 2.0
Краткое описание свойств
| Тип | Свойство | Описание |
|---|---|---|
ReadOnlyObjectProperty<Throwable> | exception | Получает ReadOnlyObjectProperty, представляющий любую возникшую ошибку. |
ReadOnlyStringProperty | message | Получает ReadOnlyStringProperty, представляющий сообщение. |
ReadOnlyDoubleProperty | progress | Получает ReadOnlyDoubleProperty, представляющий прогресс. |
ReadOnlyBooleanProperty | running | Получает ReadOnlyBooleanProperty, представляющий, работает ли Worker. |
ReadOnlyObjectProperty<Worker.State> | state | Получает ReadOnlyObjectProperty, представляющий текущее состояние. |
ReadOnlyStringProperty | title | Получает ReadOnlyStringProperty, представляющий заголовок. |
ReadOnlyDoubleProperty | totalWork | Получает ReadOnlyDoubleProperty, представляющий максимальное количество работы, которое нужно выполнить. |
ReadOnlyObjectProperty<V> | value | Получает ReadOnlyObjectProperty, представляющий значение. |
ReadOnlyDoubleProperty | workDone | Получает ReadOnlyDoubleProperty, представляющий текущий прогресс. |
Краткое описание вложенных классов
| Модификатор и тип | Интерфейс | Описание |
|---|---|---|
static class | Worker.State | Состояние Worker. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean | cancel() | Прерывает выполнение этого Worker. |
ReadOnlyObjectProperty<Throwable> | exceptionProperty() | Получает ReadOnlyObjectProperty, представляющий любую возникшую ошибку. |
Throwable | getException() | Указывает ошибку, которая произошла во время работы Worker, если таковая имелась. |
String | getMessage() | Получает сообщение, связанное с текущим состоянием этого Worker. |
double | getProgress() | Указывает текущий прогресс выполнения этого Worker в процентах. |
Worker.State | getState() | Указывает текущее состояние этого Worker. |
String | getTitle() | Необязательный заголовок, который должен быть связан с этим Worker. |
double | getTotalWork() | Указывает максимальное значение для свойства workDoneProperty(). |
V | getValue() | Указывает значение или результат работы этого Worker. |
double | getWorkDone() | Указывает текущее количество выполненной работы. |
boolean | isRunning() | True, если состояние равно либо SCHEDULED, либо RUNNING. |
ReadOnlyStringProperty | messageProperty() | Получает ReadOnlyStringProperty, представляющий сообщение. |
ReadOnlyDoubleProperty | progressProperty() | Получает ReadOnlyDoubleProperty, представляющий прогресс. |
ReadOnlyBooleanProperty | runningProperty() | Получает ReadOnlyBooleanProperty, представляющий, работает ли Worker. |
ReadOnlyObjectProperty<Worker.State> | stateProperty() | Получает ReadOnlyObjectProperty, представляющий текущее состояние. |
ReadOnlyStringProperty | titleProperty() | Получает ReadOnlyStringProperty, представляющий заголовок. |
ReadOnlyDoubleProperty | totalWorkProperty() | Получает ReadOnlyDoubleProperty, представляющий максимальное количество работы, которое нужно выполнить. |
ReadOnlyObjectProperty<V> | valueProperty() | Получает ReadOnlyObjectProperty, представляющий значение. |
ReadOnlyDoubleProperty | workDoneProperty() | Получает ReadOnlyDoubleProperty, представляющий текущий прогресс. |
Подробности свойств
состояние
ReadOnlyObjectProperty<Worker.State> stateProperty
- См. также:
getState()
значение
ReadOnlyObjectProperty<V> valueProperty
- См. также:
getValue()
исключение
ReadOnlyObjectProperty<Throwable> exceptionProperty
- См. также:
getException()
выполненаРабота
ReadOnlyDoubleProperty workDoneProperty
- См. также:
getWorkDone()
общаяРабота
ReadOnlyDoubleProperty totalWorkProperty
- См. также:
getTotalWork()
прогресс
ReadOnlyDoubleProperty progressProperty
- См. также:
getProgress()
запуск
ReadOnlyBooleanProperty runningProperty
- См. также:
isRunning()
сообщение
ReadOnlyStringProperty messageProperty
- См. также:
getMessage()
заголовок
ReadOnlyStringProperty titleProperty
- См. также:
getTitle()
Подробности методов
getState
Worker.State getState()
- Возвращает:
- Текущее состояние этого Worker
stateProperty
ReadOnlyObjectProperty<Worker.State> stateProperty()
- См. также:
getState()
getValue
V getValue()
- Возвращает:
- Текущее значение этого Worker
valueProperty
ReadOnlyObjectProperty<V> valueProperty()
- См. также:
getValue()
getException
Throwable getException()
null, известное исключение отсутствует, даже если состояние FAILED. Если это свойство не null, оно, скорее всего, будет содержать исключение, описывающее причину сбоя.- Возвращает:
- Исключение, если оно возникло
exceptionProperty
ReadOnlyObjectProperty<Throwable> exceptionProperty()
- См. также:
getException()
getWorkDone
double getWorkDone()
- Возвращает:
- объём выполненной работы
- См. также:
-
totalWorkProperty(),progressProperty()
workDoneProperty
ReadOnlyDoubleProperty workDoneProperty()
- См. также:
getWorkDone()
getTotalWork
double getTotalWork()
workDoneProperty(). totalWork будет либо -1 (что указывает на неопределенность объема работы), либо это будет ненулевое значение, меньшее или равное Double.MAX_VALUE.- Возвращает:
- общий объем работы
- См. также:
-
workDoneProperty(),progressProperty()
totalWorkProperty
ReadOnlyDoubleProperty totalWorkProperty()
- См. также:
getTotalWork()
getProgress
double getProgress()
- Возвращает:
- текущий прогресс
- См. также:
-
workDoneProperty(),totalWorkProperty()
progressProperty
ReadOnlyDoubleProperty progressProperty()
- См. также:
getProgress()
isRunning
boolean isRunning()
ProgressIndicator, вы обычно будете связывать видимость ProgressIndicator со свойством running Worker, а прогресс ProgressIndicator — со свойством progress Worker.- Возвращает:
- true, если этот Worker запущен
runningProperty
ReadOnlyBooleanProperty runningProperty()
- См. также:
isRunning()
getMessage
String getMessage()
- Возвращает:
- текущее сообщение
messageProperty
ReadOnlyStringProperty messageProperty()
- См. также:
getMessage()
getTitle
String getTitle()
- Возвращает:
- текущий заголовок
titleProperty
ReadOnlyStringProperty titleProperty()
- См. также:
getTitle()
cancel
boolean cancel()
- Возвращает:
- Возвращает true, если отмена прошла успешно
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.