【发布时间】:2014-04-10 05:52:44
【问题描述】:
我已经以固定速率启动计时器。当用户更改系统时间时,任务会连续执行。它不考虑周期时间。如何管理。
timer.scheduleAtFixedRate(task, delay, period);
注意:现在系统时间是当前时间。周期是 30 秒。现在用户将系统时间更改为从当前时间开始的 10 分钟后。此时计时器任务不考虑该时间段。在一秒钟内它执行任务 20 次。
当我使用时
timer.schedule(task, delay, period);
而不是
timer.scheduleAtFixedRate(task, delay, period);
任务正常工作。如果我将系统时间更改为从现在起过去 10 分钟的时间,则任务不会执行...
如何解决这个问题? :(
【问题讨论】:
-
请展示一个简短但完整的程序来说明问题。例如,您是否可能期望周期以秒为单位,而实际上以毫秒为单位?
-
您是说
task的执行与delay和period无关吗? -
是的。任务与延迟和周期无关
-
感谢您的 cmets Jon Skeet 和 txtechhelp