【发布时间】:2017-09-18 01:24:24
【问题描述】:
我有一个 java Timer,我希望它在每次滴答作响时做一些事情。例如,我希望我的程序输出这个:
我想要的输出:
勾选 1 秒过去了
勾选 2 秒过去了
打勾 3 秒过去了
打勾 4 秒过去了
打勾 5 秒过去了
时间到了,正在运行 do_something()...
到目前为止,我所拥有的是:
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
System.out.println("Time up, running do_something()");
do_something();
}
};
timer.schedule(timerTask, 5);
到目前为止,我的代码的实际输出是这样的:
时间到了,正在运行 do_something()...
当我到达这条线时已经过去了 5 秒。
【问题讨论】:
-
你需要一个循环
-
我应该如何制作循环?
-
好吧,你的
Timer设置了毫秒延迟,所以你只会得到一次,如果你想重复,你将不得不使用schedule(TimerTask, long, long)。你也可以使用两个Timers,一个重复,一个不重复的不同间隔的集合。如果您想要一个Timer,那么您需要确定它何时首次激活,计算执行之间的时间并确定要做什么。超过阈值(即 5 秒)后,取消计时器并执行其他操作 -
@cricket_007 如果使用正确,
Timer是一个(某种)循环