如何停止在Java.util.Timer类中计划的任务
我正在使用java.util.timer
类,我使用它的调度方法来执行一些任务,但执行了6次后,我不得不停止它的任务。
我该怎么做?
保持对某个地方的计时器的引用,并使用:
timer.cancel(); timer.purge();
停止任何事情 你可以把这个代码放在你正在执行的任务中,用一个static int
来计算你已经走过的次数,例如
private static int count = 0; public static void run() { count++; if (count >= 6) { timer.cancel(); timer.purge(); return; } ... perform task here .... }
要么在Timer
上调用cancel()
,要么在TimerTask
上定义cancel()
如果定时器本身还有其他你想要继续的任务)。
您应该停止您在计时器上安排的任务:您的计时器:
Timer t = new Timer(); TimerTask tt = new TimerTask() { @Override public void run() { //do something }; } t.schedule(tt,1000,1000);
为了停止:
tt.cancel(); t.cancel(); //In order to gracefully terminate the timer thread
请注意,取消定时器将不会终止正在进行的时间任务。
timer.cancel(); //Terminates this timer,discarding any currently scheduled tasks. timer.purge(); // Removes all cancelled tasks from this timer's task queue.
在特定的时间唤醒之后终止定时器一次,以毫秒为单位。
Timer t = new Timer(); t.schedule(new TimerTask() { @Override public void run() { System.out.println(" Run spcific task at given time."); t.cancel(); } }, 10000);