【发布时间】:2013-12-02 11:19:25
【问题描述】:
我在 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();
如何获取调用函数的返回值?
【问题讨论】:
-
没有称为
Task的标准Java 类。请分享此类的代码或更正您的代码示例。你的意思是FutureTask?另请注意,Java 类名真的应该是CamelCase否则你会开始混淆人们。 -
我认为您在这里混淆了很多概念。即 Callable、Future 和 Observer 模式。
-
@Duncan,我正在使用 javafx 并发任务docs.oracle.com/javafx/2/api/javafx/concurrent/Task.html
标签: java multithreading javafx-2 javafx task