我尝试了一切。这也是一个如何停止Java.util.Timer类中计划的任务
我有一个实现java.util.TimerTask的任务
我用两种方式称呼该任务:
timer.schedule(timerTask,60 * 1000);
cancelCurrentWork(); timer.schedule(timerTask,0);
此实现不会停止当前的工作:(文档说:如果在此调用发生时任务正在运行,则该任务将运行至完成,但将不再运行)
但是我需要它停止。
public static void cancelCurrentwork() {
if (timerTask!= null) {
timerTask.cancel();
}
}
该实现只是取消了计时器,但使当前正在执行的任务得以完成。
public static void cancelCurrentwork() {
if (timer!= null) {
timer.cancel();
}
}
计时器中是否有办法停止当前执行的任务,例如Thread.kill()之类的东西?当我需要停止该任务时,我希望它失去所有数据。
计时器无法在其轨道上停止任务。
您将需要在正在运行的任务本身中有一个单独的机制,该机制检查它是否应该继续运行。例如AtomicBoolean keepRunning
,当您要终止任务时,可以将其设置为false。
问题内容: 我正在使用类,并且正在使用其schedule方法执行某些任务,但是在执行了6次之后,我必须停止其任务。 我该怎么办? 问题答案: 在某个地方保留对计时器的引用,并使用: 停止所做的一切。您可以将此代码放在要执行的任务中,static int以计算您经过的次数,例如
问题内容: 我正在使用类,并且正在使用其schedule方法执行某些任务,但是在执行了6次之后,我必须停止其任务。 我该怎么办? 问题答案: 在某个地方保留对计时器的引用,并使用: 停止所做的一切。您可以将此代码放在正在执行的任务中,以计算您经过的次数,例如
我的应用程序设置为(非故意)服务将使用gps/网络侦听器轮询位置。它工作得很好,因为我负责服务何时结束(即在找到新位置或达到超时时调用stopSelf())。然而,我最近读到,intentService可能更适合长时间运行的任务,因为它不是在ui线程上运行的,而是在自己的工作线程上运行的。问题是,现在它不允许服务在任何时间运行(我假设这是因为服务中没有任何活动发生,而侦听器等待接收位置,因此服务本
问题内容: 我正在使用SQL Server 2008及其管理工作室。我执行了一个查询,该查询产生许多行。我试图通过红色的“取消”按钮将其取消,但在过去的10分钟内仍未停止。通常会在3分钟内停止。 原因可能是什么?如何立即停止? 问题答案: 可能是什么原因 只要您的注意力可以到达服务器并得到处理,查询就会立即取消。查询必须处于可取消状态,几乎总是如此,除非您执行某些操作,例如从SQLCLR调用Web
我已经使用Spring云数据流来控制一些批处理作业。在SCDF中,我定义了一些任务后,它们作为运行状态的作业启动。当我试图停止一项特定的工作时,它并没有立即停止。我发现该工作仍在运行,直到它完成了当前的步骤。 例如,我的作业'abc'有2个步骤A和B。在SCDF中,当步骤A正在执行,而作业'abc'仍在运行时,我停止作业'abc',直到步骤A完成,并且它没有实现步骤B。 那么,有什么方法可以从Sp