val*_*674 5 java schedule timer scheduled-tasks
我尝试了一切.这一个如何停止在Java.util.Timer类中安排的任务
我有一个实现java.util.TimerTask的任务
我用两种方式称呼该任务:
我安排这样的计时器:
timer.schedule(timerTask,60*1000);
有时我需要立即开始工作,如果有任何工作,它必须取消timerTask
cancelCurrentWork(); timer.schedule(timerTask,0);
此实现不会停止当前的工作:(文档说:如果在发生此调用时任务正在运行,则任务将运行完成,但永远不会再次运行)
但我需要它停下来.
public static void cancelCurrentwork() {
if (timerTask!= null) {
timerTask.cancel();
}
}
Run Code Online (Sandbox Code Playgroud)
这个实现只是取消了计时器,但目前正在完成任务.
public static void cancelCurrentwork() {
if (timer!= null) {
timer.cancel();
}
}
Run Code Online (Sandbox Code Playgroud)
在计时器中是否有一种方法可以停止当前正在执行的操作,比如Thread.kill()之类的东西?当我需要停止任务时,我希望它放弃所有数据.
Timer无法将任务停在其轨道上.
您将需要在运行任务本身中具有单独的机制,以检查它是否应该继续运行.例如,您可以拥有一个AtomicBoolean keepRunning变量,当您希望任务终止时,该变量设置为false.