Интерфейс Worker<V>
- Все известные реализующие классы:
-
ScheduledService,Service,Task
public interface Worker<V>
Worker — это объект, который выполняет некоторую работу в одной или нескольких фоновых потоках, состояние которого наблюдаемо и доступно приложениям JavaFX, и его можно использовать из основного потока приложения JavaFX. Этот интерфейс в основном реализуется как классом Task, так и классом Service, обеспечивая общий API между обоими классами, что облегчает библиотекам и фреймворкам предоставление работников, которые хорошо работают при разработке пользовательских интерфейсов.
Worker может или не может быть повторно использован в зависимости от реализации. Например, Task не является повторно используемым, в то время как Service является.
Worker имеет хорошо определённый жизненный цикл. Каждый Worker начинает в состоянии Worker.State.READY. Когда Worker запланирован для работы (например, когда вызывается метод Service.start() Service), он переходит в состояние Worker.State.SCHEDULED. Даже те Worker, которые не технически запланированы, но запускаются сразу (например, с FutureTask.run()) будут проходить через состояние Worker.State.SCHEDULED по пути к состоянию Worker.State.RUNNING.
Когда Worker фактически выполняет свою работу, состояние переходит в Worker.State.RUNNING. Если Worker завершается нормально, он завершается в состоянии Worker.State.SUCCEEDED, и результат Worker устанавливается как свойство value. Однако, если во время выполнения Worker возникает исключение, состояние устанавливается в Worker.State.FAILED, а свойство exception устанавливается в исключение, которое произошло.
В любое время до завершения работы Worker (то есть, если состояние ещё не Worker.State.SUCCEEDED или Worker.State.FAILED), разработчик может вызвать метод cancel(). Если он вызван, Worker прекратит выполнение (если это возможно, включая использование Thread.interrupt) и состояние изменится на Worker.State.CANCELLED.
Единственное допустимое начальное состояние для Worker — Worker.State.READY, а допустимые конечные состояния — Worker.State.CANCELLED, Worker.State.SUCCEEDED и Worker.State.FAILED. Свойство running устанавливается в true, когда состояние — Worker.State.SCHEDULED или Worker.State.RUNNING.
Прогресс Worker можно отслеживать через три разных свойства, totalWork, workDone и progress. Эти свойства устанавливаются фактической реализацией интерфейса Worker, но их может наблюдать любой. workDone — число от -1 (означает неопределённый прогресс) до totalWork включительно. Когда workDone == totalWork, progress будет 100% (или 1). totalWork будет числом от -1 до Long.MAX_VALUE включительно. Прогресс будет либо -1 (означает неопределённый), либо значение от 0 до 1 включительно, представляющее от 0% до 100%.
Worker, находящийся в состояниях Worker.State.READY или Worker.State.SCHEDULED, всегда будет иметь workDone и progress, установленные в -1. Worker в состоянии 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 enum |
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, представляющий текущий прогресс. |
Подробности свойств
state
ReadOnlyObjectProperty<Worker.State> stateProperty
- См. также:
value
ReadOnlyObjectProperty<V> valueProperty
- См. также:
exception
ReadOnlyObjectProperty<Throwable> exceptionProperty
- См. также:
workDone
ReadOnlyDoubleProperty workDoneProperty
- См. также:
totalWork
ReadOnlyDoubleProperty totalWorkProperty
- См. также:
progress
ReadOnlyDoubleProperty progressProperty
- См. также:
running
ReadOnlyBooleanProperty runningProperty
- См. также:
message
ReadOnlyStringProperty messageProperty
- См. также:
title
ReadOnlyStringProperty titleProperty
- См. также:
Подробности методов
getState
Worker.State getState()
- Возвращает:
- Текущее состояние этого Worker
stateProperty
ReadOnlyObjectProperty<Worker.State> stateProperty()
- Возвращает:
- Свойство, представляющее состояние
- См. также:
getValue
V getValue()
- Возвращает:
- текущее значение этого Worker
valueProperty
ReadOnlyObjectProperty<V> valueProperty()
- Возвращает:
- Свойство, представляющее текущее значение
- См. также:
getException
Throwable getException()
null, известной ошибки нет, даже если статус FAILED. Если это свойство не null, скорее всего, оно будет содержать исключение, описывающее причину сбоя.- Возвращает:
- исключение, если оно произошло
exceptionProperty
ReadOnlyObjectProperty<Throwable> exceptionProperty()
- Возвращает:
- свойство, представляющее исключение
- См. также:
getWorkDone
double getWorkDone()
- Возвращает:
- количество выполненной работы
- См. также:
workDoneProperty
ReadOnlyDoubleProperty workDoneProperty()
- Возвращает:
- Свойство, представляющее количество выполненной работы
- См. также:
getTotalWork
double getTotalWork()
workDoneProperty(). totalWork будет либо -1 (указывающее, что количество работы неопределенно), либо ненулевым значением, меньшим или равным Double.MAX_VALUE.- Возвращает:
- общий объем работы, подлежащей выполнению
- См. также:
totalWorkProperty
ReadOnlyDoubleProperty totalWorkProperty()
- Возвращает:
- свойство, представляющее общий объем работы, подлежащей выполнению
- См. также:
getProgress
double getProgress()
- Возвращает:
- текущий прогресс
- См. также:
progressProperty
ReadOnlyDoubleProperty progressProperty()
- Возвращает:
- свойство, представляющее прогресс
- См. также:
isRunning
boolean isRunning()
ProgressIndicator, как правило, вы будете связывать видимость ProgressIndicator со свойством running Worker, а прогресс ProgressIndicator — со свойством progress Worker.- Возвращает:
- истина, если этот Worker выполняется
runningProperty
ReadOnlyBooleanProperty runningProperty()
- Возвращает:
- свойство, представляющее, выполняется ли рабочий процесс
- См. также:
getMessage
String getMessage()
- Возвращает:
- текущее сообщение
messageProperty
ReadOnlyStringProperty messageProperty()
- Возвращает:
- свойство, представляющее текущее сообщение
- См. также:
getTitle
String getTitle()
- Возвращает:
- текущий заголовок
titleProperty
ReadOnlyStringProperty titleProperty()
- Возвращает:
- свойство, представляющее текущий заголовок
- См. также:
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.