我正在使用java.util.timer类,我正在编写此代码
Timer myTimer = new Timer();
MyTask myTask = new MyTask() //MyTask extends TimerTask
Date alarmDate = new Date();
myTimer.schedule(myTask, alarmDate);
并使用此方法在特定日期时间执行多项任务
但我必须停止其中一些。我怎么能通过取消方法取消“myTask.cancel(Date date);”?
答案 0 :(得分:1)
TimerTask.cancel()
不参数。只需致电
myTask.cancel();
请注意计时器的API文档中的以下注释:
Java 5.0引入了java.util.concurrent包和其中一个 其中的并发实用程序是ScheduledThreadPoolExecutor 是一个线程池,用于以给定的速率重复执行任务或 延迟。它实际上是一种更通用的替代品 Timer / TimerTask组合,因为它允许多个服务线程, 接受各种时间单位,并且不需要子类化TimerTask (只需实现Runnable)。配置ScheduledThreadPoolExecutor 使用一个线程使其等同于Timer。
虽然实现的代码可能略多一些,但它可以更好地控制提交的任务。