Spec-Zone .ru
спецификации, руководства, описания, API
|
V
- public abstract class Service<V> extends java.lang.Object implements Worker<V>
Служба является невидимым компонентом, инкапсулирующим информацию, запрошенную, чтобы выполнить некоторую работу над одним или более фоновыми потоками. Поскольку часть JavaFX, который библиотеку UI, Служба знает о Приложении JavaFX, распараллеливает, и разрабатывается, чтобы освободить разработчика приложений от бремени manging многопоточного кода, который взаимодействует с пользовательским интерфейсом. Также, все методы и состояние на Службе предназначаются, чтобы быть вызванными исключительно от потока Приложения JavaFX.
Реализации службы Worker
. Также, можно наблюдать состояние фоновой работы и дополнительно отменить это. Служба является допускающим повторное использование Рабочим, означая, что она может быть сброшена и перезапущена. Из-за этого, Служба может быть создана declarativley и перезапущена по требованию.
Если Executor
определяется на Службе, тогда она будет использоваться, чтобы фактически выполнить службу. Иначе, поток демона будет создан и выполнен. Если Вы хотите создать потоки недемона, то определите пользовательского Исполнителя (например, Вы могли использовать a ThreadPoolExecutor
с пользовательским ThreadFactory
).
Поскольку Служба предназначается, чтобы упростить декларативные варианты использования, подклассы должны представить как свойства входные параметры к работе, которая будет сделана. Например, предположите, что я хотел записать Службу, которые читают первую строку из любого URL и возвратили ее как Строку. Такая Служба могла бы быть определена, так, что у нее было единственное свойство, url
. Это могло бы быть реализовано как:
public class FirstLineService extends Service {
private StringProperty url = new StringProperty();
public final void setUrl(String value) { url.set(value); }
public final String getUrl() { return url.get(); }
public final StringProperty urlProperty() { return url; }
protected Task createTask() {
final String _url = getUrl();
return new Task<InputStream>() {
protected String call() {
URL u = new URL(_url);
BufferedReader in = new BufferedReader(
new InputStreamReader(u.openStream()));
String result = in.readLine();
in.close();
return result;
}
}
}
}
Служба значением по умолчанию использует Исполнителя пула потоков с некоторым неуказанным значением по умолчанию или максимальным размером пула потоков. Это делается так, чтобы наивный код не полностью затопил систему, создавая тысячи Потоков.
Ввести | Свойство и Описание |
---|---|
ReadOnlyObjectProperty<java.lang.Throwable> |
исключение
Получает ReadOnlyObjectProperty, представляющий любое исключение, которое произошло.
|
ObjectProperty<java.util.concurrent.Executor> |
исполнитель
Исполнитель, чтобы использовать для того, чтобы выполнить эту Службу.
|
ReadOnlyStringProperty |
сообщение
Получает ReadOnlyStringProperty, представляющий сообщение.
|
ReadOnlyDoubleProperty |
продвижение
Получает ReadOnlyLongProperty, представляющий продвижение.
|
ReadOnlyBooleanProperty |
выполнение
Получает представление ReadOnlyBooleanProperty, работает ли Рабочий.
|
ReadOnlyObjectProperty<Worker.State> |
состояние
Получает ReadOnlyObjectProperty, представляющий текущее состояние.
|
ReadOnlyStringProperty |
title
Получает ReadOnlyStringProperty, представляющий title.
|
ReadOnlyDoubleProperty |
totalWork
Получает ReadOnlyLongProperty, представляющий максимальный объем работы, который должен быть сделан.
|
ReadOnlyObjectProperty<V> |
значение
Получает ReadOnlyObjectProperty, представляющий значение.
|
ReadOnlyDoubleProperty |
workDone
Получает ReadOnlyLongProperty, представляющий текущее продвижение.
|
Рабочий. Государство
Конструктор и Описание |
---|
Service() |
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
cancel()
Завершает выполнение этого Рабочего.
|
protected abstract Task |
createTask()
Вызванный после того, как Служба запускается на Потоке Приложения JavaFX.
|
ReadOnlyObjectProperty<java.lang.Throwable> |
exceptionProperty()
Получает ReadOnlyObjectProperty, представляющий любое исключение, которое произошло.
|
ObjectProperty<java.util.concurrent.Executor> |
executorProperty()
Исполнитель, чтобы использовать для того, чтобы выполнить эту Службу.
|
java.lang.Throwable |
getException()
Указывает на исключение, которое произошло, в то время как Рабочий работал, если любой.
|
java.util.concurrent.Executor |
getExecutor()
Исполнитель, чтобы использовать для того, чтобы выполнить эту Службу.
|
java.lang.String |
getMessage()
Связали сообщение с текущим состоянием этого Рабочего.
|
double |
getProgress()
Указывает на текущее продвижение этого Рабочего с точки зрения полного процента.
|
Рабочий. Государство |
getState()
Определяет текущее состояние этого Рабочего.
|
java.lang.String |
getTitle()
Дополнительный title, который должен быть связан с этим Рабочим.
|
double |
getTotalWork()
Указывает на максимальное значение для
Worker.workDoneProperty() свойство. |
V |
getValue()
Определяет значение, или результат, этого Рабочего.
|
double |
getWorkDone()
Указывает на текущий объем работы, который был завершен.
|
boolean |
isRunning()
Истина, если состояние или ПЛАНИРУЕТСЯ или ВЫПОЛНЕНИЕ.
|
ReadOnlyStringProperty |
messageProperty()
Получает ReadOnlyStringProperty, представляющий сообщение.
|
ReadOnlyDoubleProperty |
progressProperty()
Получает ReadOnlyLongProperty, представляющий продвижение.
|
void |
reset()
Сбрасывает Службу.
|
void |
restart()
Отмены любая в настоящий момент выполняющаяся задача, если таковые вообще имеются, и перезапуски эта Служба.
|
ReadOnlyBooleanProperty |
runningProperty()
Получает представление ReadOnlyBooleanProperty, работает ли Рабочий.
|
void |
setExecutor(java.util.concurrent.Executor value)
Исполнитель, чтобы использовать для того, чтобы выполнить эту Службу.
|
void |
start()
Запускает эту Службу.
|
ReadOnlyObjectProperty<Worker.State> |
stateProperty()
Получает ReadOnlyObjectProperty, представляющий текущее состояние.
|
ReadOnlyStringProperty |
titleProperty()
Получает ReadOnlyStringProperty, представляющий title.
|
ReadOnlyDoubleProperty |
totalWorkProperty()
Получает ReadOnlyLongProperty, представляющий максимальный объем работы, который должен быть сделан.
|
ReadOnlyObjectProperty<V> |
valueProperty()
Получает ReadOnlyObjectProperty, представляющий значение.
|
ReadOnlyDoubleProperty |
workDoneProperty()
Получает ReadOnlyLongProperty, представляющий текущее продвижение.
|
stateProperty
в интерфейсе Worker<V>
getState()
valueProperty
в интерфейсе Worker<V>
getValue()
exceptionProperty
в интерфейсе Worker<V>
getException()
workDoneProperty
в интерфейсе Worker<V>
getWorkDone()
totalWorkProperty
в интерфейсе Worker<V>
getTotalWork()
progressProperty
в интерфейсе Worker<V>
getProgress()
runningProperty
в интерфейсе Worker<V>
isRunning()
messageProperty
в интерфейсе Worker<V>
getMessage()
titleProperty
в интерфейсе Worker<V>
getTitle()
getExecutor()
, setExecutor(Executor)
public final Worker.State getState()
Worker
public final ReadOnlyObjectProperty<Worker.State> stateProperty()
Worker
stateProperty
в интерфейсе Worker<V>
getState()
public final V getValue()
Worker
public final ReadOnlyObjectProperty<V> valueProperty()
Worker
valueProperty
в интерфейсе Worker<V>
getValue()
public final java.lang.Throwable getException()
Worker
null
, нет никакого известного исключения, даже если состояние является ОТКАЗАВШИМ. Если это свойство не null
, это будет наиболее вероятно содержать исключение, которое описывает причину отказа.getException
в интерфейсе Worker<V>
public final ReadOnlyObjectProperty<java.lang.Throwable> exceptionProperty()
Worker
exceptionProperty
в интерфейсе Worker<V>
getException()
public final double getWorkDone()
Worker
getWorkDone
в интерфейсе Worker<V>
Worker.totalWorkProperty()
, Worker.progressProperty()
public final ReadOnlyDoubleProperty workDoneProperty()
Worker
workDoneProperty
в интерфейсе Worker<V>
getWorkDone()
public final double getTotalWork()
Worker
Worker.workDoneProperty()
свойство. totalWork или будет-1 (указание, что объем работы, чтобы сделать неопределенен), или это будет ненулевое значение, меньше чем или равное Лонгу. MAX_VALUE.getTotalWork
в интерфейсе Worker<V>
Worker.workDoneProperty()
, Worker.progressProperty()
public final ReadOnlyDoubleProperty totalWorkProperty()
Worker
totalWorkProperty
в интерфейсе Worker<V>
getTotalWork()
public final double getProgress()
Worker
getProgress
в интерфейсе Worker<V>
Worker.workDoneProperty()
, Worker.totalWorkProperty()
public final ReadOnlyDoubleProperty progressProperty()
Worker
progressProperty
в интерфейсе Worker<V>
getProgress()
public final boolean isRunning()
Worker
ProgressIndicator
, Вы будете обычно связывать видимость ProgressIndicator к рабочему свойству Рабочего, и продвижение ProgressIndicator к свойству продвижения Рабочего.public final ReadOnlyBooleanProperty runningProperty()
Worker
runningProperty
в интерфейсе Worker<V>
isRunning()
public final java.lang.String getMessage()
Worker
getMessage
в интерфейсе Worker<V>
public final ReadOnlyStringProperty messageProperty()
Worker
messageProperty
в интерфейсе Worker<V>
getMessage()
public final java.lang.String getTitle()
Worker
public final ReadOnlyStringProperty titleProperty()
Worker
titleProperty
в интерфейсе Worker<V>
getTitle()
public final void setExecutor(java.util.concurrent.Executor value)
public final java.util.concurrent.Executor getExecutor()
public final ObjectProperty<java.util.concurrent.Executor> executorProperty()
getExecutor()
, setExecutor(Executor)
public final boolean cancel()
Worker
public void restart()
public void reset()
public void start()
protected abstract Task createTask()
protected Task createTask() {
final String url = myService.getUrl();
return new Task<InputStream>() {
protected String call() {
URL u = new URL("http://www.oracle.com");
BufferedReader in = new BufferedReader(
new InputStreamReader(u.openStream()));
String result = in.readLine();
in.close();
return result;
}
}
}
Если Задачей является предопределенный class (в противоположность тому, чтобы быть анонимным class), и если она следовала за рекомендуемой передовой практикой, то нет никакой потребности сохранить от состояния до построения Задачи, так как ее состояние полностью обеспечивается в ее конструкторе.
protected Task createTask() {
// This is safe because getUrl is called on the FX Application
// Thread and the FirstLineReaderTasks stores it as an
// immutable property
return new FirstLineReaderTask(myService.getUrl());
}
Copyright (c) 2008, 2011, Oracle и/или его филиалы. Все права защищены. Использование подвергается