【发布时间】:2016-10-28 07:23:46
【问题描述】:
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import javafx.concurrent.Task;
public class T {
public static void main(String[] args) {
ExecutorService executorService = Executors.newSingleThreadExecutor();
Task t = new Task(){
@Override
protected Object call() throws Exception {
System.out.println(1/0);
return null;
}
};
//My progresss Bar in JavaFX
//Progressbar.progressProperty().bind(t.progressProperty());
Future future = executorService.submit(t);
try {
future.get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} //returns null if the task has finished correctly.
executorService.shutdown();
}
}
我有一个类似于这样的代码我的代码任务在对象调用中有内部方法调用,它会引发 sql 异常,但我永远无法在 Executor 服务中捕获它,也只是在提交调用上方我有一个 javafx 的进度条但是那个使用 future 时,似乎也像主 ui 挂起一样卡住了。没有未来,进度条可以工作。
【问题讨论】:
标签: java multithreading javafx executorservice