停止计划任务并重新计划

时间:2014-10-30 18:01:01

标签: java timer timertask

在我的程序中,我需要在GUI中使用超时。例如,用户开始使用GUI,超时开始couting。当他到达某个阶段时,当前超时被丢弃并且新的开始。

我在考虑使用Timer& TimerTask类以这种方式执行:

TimerTask1 - >做一些事情(包括计时器取消和清除)

TimerTask2 - >做另一件事(包括计时器取消和清除)

计时器 - >一个计时器用于两个任务,因为他们不会并行运行。

代码如下所示:

=== user starts using GUI at stage A ===

Timer.shedule(TimerTask1, neededAmountOfTime)

==after reaching stage B==

Timer.cancel()

Timer.purge()

Timer.shedule(TimerTask2, neededAmountOfTime)

==after reaching final stage C==

Timer.cancel()

Timer.purge()

它会像我认为的那样起作用吗?在阶段A,如果用户未在分配的时间内到达阶段B,则调度并触发TimerTask1。如果他到达阶段B,则会终止Timertask1并安排TimerTask2。如果用户未在分配的时间内到达阶段C,则触发TimerTask2。如果用户在分配的时间内到达阶段C,则触发非TimerTasks。

我的想法是对的吗?

编辑:

我尝试了上述方法。取消定时器后的当然,我必须在安排它之前创建一个新的。问题是,有时计时器工作,有时不工作。有没有办法检查TimerTask是否在Timer上正确安排?

0 个答案:

没有答案