Java 计时器需要很长时间才能启动
作为一个测试项目,我试图编写一个程序来计算我的CPS 为了实现这一点,我使用Java 计时器需要很长时间才能启动,java,swing,timer,Java,Swing,Timer,作为一个测试项目,我试图编写一个程序来计算我的CPS 为了实现这一点,我使用定时器以固定速率计划,在本例中,将给定时间计数十次,然后在JProgressBar上显示时间,同时用户尝试尽可能频繁地单击按钮 但当我用按钮启动计时器时,计时器又需要大约10秒钟的时间启动并填满吧台 也许只是因为我的电脑慢 代码 public void scheduleAtFixedRate(TimerTask任务, 久拖不决,, (长周期) 将指定的任务安排为重复的固定速率执行,从指定的延迟后开始。随后的执行大约每隔
定时器
以固定速率计划,在本例中,将给定时间计数十次,然后在JProgressBar
上显示时间,同时用户尝试尽可能频繁地单击按钮
但当我用按钮启动计时器时,计时器又需要大约10秒钟的时间启动并填满吧台
也许只是因为我的电脑慢
代码
public void scheduleAtFixedRate(TimerTask任务,
久拖不决,,
(长周期)
将指定的任务安排为重复的固定速率执行,从指定的延迟后开始。随后的执行大约每隔一定的时间间隔进行,间隔为指定的时间段
您指定的第二个参数是计时器启动前的延迟。将其设置为0以使其立即启动检查:
public void scheduleAtFixedRate(TimerTask任务、首次日期、长周期)
参数:
任务-要计划的任务
firstTime—第一次执行任务的时间
period—连续执行任务之间的时间(以毫秒为单位)
你写道:
timer.scheduleAtFixedRate(new TimerTask()..., time*1000, 1000);
这意味着它会将第一次运行延迟time*1000
ms
要立即开始执行,只需将代码更改为
timer.scheduleAtFixedRate(new TimerTask()..., 0, 1000);
然后,如果您想在X秒后结束计时器,有一些解决方案:
java.util.timer-timer当处理GUI组件时,请使用javax.swing.Timer
。使用Swing定时器时,需要在EDT上自动更新它们。请参阅:
timer.scheduleAtFixedRate(new TimerTask()..., 0, 1000);