Spec-Zone.ru › OpenJavaFX 21

Интерфейс 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
Получает ReadOnlyObjectProperty, представляющий текущее состояние.
См. также:
  • getState()
  • stateProperty()

value

ReadOnlyObjectProperty<V> valueProperty
Получает ReadOnlyObjectProperty, представляющий значение.
См. также:
  • getValue()
  • valueProperty()

exception

ReadOnlyObjectProperty<Throwable> exceptionProperty
Получает ReadOnlyObjectProperty, представляющий любую произошедшую ошибку.
См. также:
  • getException()
  • exceptionProperty()

workDone

ReadOnlyDoubleProperty workDoneProperty
Получает ReadOnlyDoubleProperty, представляющий текущий прогресс.
См. также:
  • getWorkDone()
  • workDoneProperty()

totalWork

ReadOnlyDoubleProperty totalWorkProperty
Получает ReadOnlyDoubleProperty, представляющий максимальное количество работы, которое необходимо выполнить. Эти «единицы работы» имеют значение для реализации Worker, например, количество байтов, которые нужно загрузить, или количество изображений для обработки, или какой-то другой такой метрик.
См. также:
  • getTotalWork()
  • totalWorkProperty()

progress

ReadOnlyDoubleProperty progressProperty
Получает ReadOnlyDoubleProperty, представляющий прогресс.
См. также:
  • getProgress()
  • progressProperty()

running

ReadOnlyBooleanProperty runningProperty
Получает ReadOnlyBooleanProperty, представляющий, выполняется ли Worker.
См. также:
  • isRunning()
  • runningProperty()

message

ReadOnlyStringProperty messageProperty
Получает ReadOnlyStringProperty, представляющий сообщение.
См. также:
  • getMessage()
  • messageProperty()

title

ReadOnlyStringProperty titleProperty
Получает ReadOnlyStringProperty, представляющий заголовок.
См. также:
  • getTitle()
  • titleProperty()

Подробности методов

getState

Worker.State getState()
Определяет текущее состояние этого Worker. Начальное значение — State.READY. Задача может быть перезапущена, в этом случае она переходит из одного из этих конечных состояний (SUCCEEDED, CANCELLED или FAILED) обратно в READY, а затем немедленно в SCHEDULED и RUNNING. Эти переходы состояний могут происходить непосредственно друг за другом, но всегда в предписанном порядке.
Возвращает:
Текущее состояние этого Worker

stateProperty

ReadOnlyObjectProperty<Worker.State> stateProperty()
Получает ReadOnlyObjectProperty, представляющий текущее состояние.
Возвращает:
Свойство, представляющее состояние
См. также:
  • getState()

getValue

V getValue()
Указывает значение или результат этого Worker. Это устанавливается при входе в состояние SUCCEEDED и очищается (устанавливается в null), если Worker переинициализируется (то есть, если Worker является повторно используемым Worker и сброшен или перезапущен).
Возвращает:
текущее значение этого Worker

valueProperty

ReadOnlyObjectProperty<V> valueProperty()
Получает ReadOnlyObjectProperty, представляющий значение.
Возвращает:
Свойство, представляющее текущее значение
См. также:
  • getValue()

getException

Throwable getException()
Указывает исключение, которое произошло во время выполнения Worker, если таковое имеется. Если значение этого свойства null, известной ошибки нет, даже если статус FAILED. Если это свойство не null, скорее всего, оно будет содержать исключение, описывающее причину сбоя.
Возвращает:
исключение, если оно произошло

exceptionProperty

ReadOnlyObjectProperty<Throwable> exceptionProperty()
Получает ReadOnlyObjectProperty, представляющий любую произошедшую ошибку.
Возвращает:
свойство, представляющее исключение
См. также:
  • getException()

getWorkDone

double getWorkDone()
Указывает текущее количество выполненной работы. Ноль или положительное значение указывают на прогресс к завершению. Значение этой переменной может или не может изменяться от своего значения по умолчанию в зависимости от конкретной реализации Worker. Значение -1 означает, что текущее количество выполненной работы невозможно определить (т. е. оно неопределенно). Значение этого свойства всегда меньше или равно totalWork.
Возвращает:
количество выполненной работы
См. также:
  • totalWorkProperty()
  • progressProperty()

workDoneProperty

ReadOnlyDoubleProperty workDoneProperty()
Получает ReadOnlyDoubleProperty, представляющий текущий прогресс.
Возвращает:
Свойство, представляющее количество выполненной работы
См. также:
  • getWorkDone()

getTotalWork

double getTotalWork()
Указывает максимальное значение для свойства workDoneProperty(). totalWork будет либо -1 (указывающее, что количество работы неопределенно), либо ненулевым значением, меньшим или равным Double.MAX_VALUE.
Возвращает:
общий объем работы, подлежащей выполнению
См. также:
  • workDoneProperty()
  • progressProperty()

totalWorkProperty

ReadOnlyDoubleProperty totalWorkProperty()
Получает ReadOnlyDoubleProperty, представляющий максимальное количество работы, которое необходимо выполнить. Эти «единицы работы» имеют значение для реализации Worker, например, количество байтов, которые нужно загрузить, или количество изображений для обработки, или какой-то другой такой метрик.
Возвращает:
свойство, представляющее общий объем работы, подлежащей выполнению
См. также:
  • getTotalWork()

getProgress

double getProgress()
Указывает текущий прогресс этого Worker в процентах выполнения. Значение между нулем и единицей указывает на прогресс к завершению. Значение -1 означает, что текущий прогресс не может быть определен (то есть он неопределенный). Это свойство может или не может изменяться от своего значения по умолчанию -1 в зависимости от конкретной реализации Worker.
Возвращает:
текущий прогресс
См. также:
  • workDoneProperty()
  • totalWorkProperty()

progressProperty

ReadOnlyDoubleProperty progressProperty()
Получает ReadOnlyDoubleProperty, представляющий прогресс.
Возвращает:
свойство, представляющее прогресс
См. также:
  • getProgress()

isRunning

boolean isRunning()
Истина, если состояние равно SCHEDULED или RUNNING. При связывании Worker с ProgressIndicator, как правило, вы будете связывать видимость ProgressIndicator со свойством running Worker, а прогресс ProgressIndicator — со свойством progress Worker.
Возвращает:
истина, если этот Worker выполняется

runningProperty

ReadOnlyBooleanProperty runningProperty()
Получает ReadOnlyBooleanProperty, представляющий, выполняется ли Worker.
Возвращает:
свойство, представляющее, выполняется ли рабочий процесс
См. также:
  • isRunning()

getMessage

String getMessage()
Получает сообщение, связанное с текущим состоянием этого Worker. Это может быть что-то вроде «Обработка изображения 1 из 3», например.
Возвращает:
текущее сообщение

messageProperty

ReadOnlyStringProperty messageProperty()
Получает ReadOnlyStringProperty, представляющий сообщение.
Возвращает:
свойство, представляющее текущее сообщение
См. также:
  • getMessage()

getTitle

String getTitle()
Необязательный заголовок, который должен быть связан с этим Worker. Это может быть что-то вроде «Изменение изображений».
Возвращает:
текущий заголовок

titleProperty

ReadOnlyStringProperty titleProperty()
Получает ReadOnlyStringProperty, представляющий заголовок.
Возвращает:
свойство, представляющее текущий заголовок
См. также:
  • getTitle()

cancel

boolean cancel()
Прерывает выполнение этого Worker. Вызов этого метода либо удалит этот Worker из очереди выполнения, либо остановит выполнение.
Возвращает:
возвращает 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API