В приложении JavaFX у меня есть метод, который занимает много времени при большом вводе. Я открываю диалоговое окно, когда оно загружается, и я бы хотел, чтобы пользователь мог отменить/закрыть диалоговое окно, и задача завершится. Я создал задачу и добавил ее отмену в обработку кнопки отмены. Но отмены не происходит, задача не перестает выполняться.
Task<Void> task = new Task<Void>() {
@Override
public Void call() throws Exception {
// calling a function that does heavy calculations in another class
};
task.setOnSucceeded(e -> {
startButton.setDisable(false);
});
}
new Thread(task).start();
cancelButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
System.out.println("Button handled");
task.cancel();
}
);
Почему задача не отменяется при нажатии кнопки?
wait
, которая будет реагировать наinterrupt
. - person Itai   schedule 24.05.2017