I, определенной в Java следующих задач и нить:Получить возвращение значения из нити
private class FinderTask extends Task<mytype>{
public FinderTask(){
...
};
@Override
protected mytype call() throws Exception {
mytype t = new mytype();
...
return t;
}
}
Начиная нить
MainController.FinderTask task = new myClass.FinderTask();
task.runningProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> ov, Boolean wasRunning, Boolean isRunning) {
if (!isRunning) {
System.out.println("task finished");
}
}
});
final Thread thread = new Thread(task , "finder");
thread.setDaemon(true);
thread.start();
Как я могу получить возвращаемое значение функции вызова?
Там нет стандартного класса Java называется 'Task'. Пожалуйста, поделитесь кодом этого класса или исправьте пример кода. Вы имели в виду ['FutureTask'] (http://docs.oracle.com/javase/7/docs/api/index.html?java/util/concurrent/FutureTask.html)? Также обратите внимание, что имена классов Java должны действительно быть «CamelCase», иначе вы начнете путать людей. –
Я думаю, вы вводите в заблуждение множество концепций. А именно Callable, Future и шаблон Observer. – TwoThe
@ Duncan, я использую совместную задачу javafx http://docs.oracle.com/javafx/2/api/javafx/concurrent/Task.html – Danilo