gpt4 book ai didi

java - 让任务在用户取消之前完成

转载 作者:行者123 更新时间:2023-11-30 08:02:24 26 4
gpt4 key购买 nike

假设我有一个看起来像这样的任务,我希望它一直运行到用户按下按钮为止。但是当按下按钮时,我不希望线程立即断开。我希望它在返回之前完成它正在做的任何事情。我怎样才能做到这一点?

task = new Service(){
@Override
protected Task createTask() {
System.out.println("Task created");
return new Task<Void>() {
@Override
protected Void call() throws Exception {

while(true) {
// Do stuff her

}
return null;
}
};
}
};

...
...
task.start();

最佳答案

只需通过按钮取消任务,并检查是否取消。如果您只检查任务何时完成“无论它在做什么”,它将在取消之前完成该任务。例如:

task = new Service(){
@Override
protected Task createTask() {
System.out.println("Task created");
return new Task<Void>() {
@Override
protected Void call() throws Exception {

while(!isCancelled()) {
// Do stuff here

}
return null;
}
};
}
};

Button cancelButton = new Button("Cancel");
cancelButton.setOnAction(e -> task.cancel());

关于java - 让任务在用户取消之前完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36969588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com