我的 Java 组件中有以下代码。每 5 秒计时器间隔调用一次 myLongRunningTask() 方法。 我需要能够暂停计时器,直到 myLongRunningTask() 方法执行完成。想知道这是否可能? 任何想法将不胜感激! (我尝试使用timer.cancel,但我相信它会丢弃任何当前计划的任务。)
谢谢。
Timer timer = new Timer();
TimerTask timer = new TimerTask() {
@Override
public void run() {
myLongRunningTask();
}
};
timer.schedule(timer, 2 * 1000, 5 * 1000);
Timer
和 TimerTask
类是遗留类,早在 Java 5 中就已被 Executors 框架取代。
Executor
子接口之一是ScheduledExecutorService
。您可以使用它来安排重复任务。对于如何制定该时间表,您有两种选择:
您似乎想要:一次执行结束后,等待五秒钟,直到下一次执行开始。如果对您的问题的解释是正确的,您需要上面列出的第二种方法。