我想运行一些方法每秒100次。 我该怎么是这样的:Java定时器100次/秒
Timer timer = new Timer(0, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
time+= 0.001;
System.out.println(time);
repaint();
}
});
从输出很明显,计时器比它应该会更快。此外,它正在CPU上收费,所以我怀疑这是正确的方式来做到这一点。如果我设置了new Timer(1, new ActionListener()
和time+= 0.01;
,那么它比应该慢。
任何人都可以帮我解决这个问题吗?我如何每秒执行100次任务?
编辑: 变化:
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
time += 0.01;
System.out.println(time);
repaint();
}
}, 1, 1);
不知道它的NetBeans,但输出时间为waaay的。它要么慢或者快。例如输出:
57.07999999999721
57.08999999999721
57.09999999999721
57.10999999999721
BUILD STOPPED (total time: 24 seconds)
5.699999999999923
5.709999999999923
5.7199999999999225
5.729999999999922
5.739999999999922
BUILD STOPPED (total time: 8 seconds)
EDIT2: 改为timer.scheduleAtFixedRate
,现在工作得很好。 THnx @GeorgeG
为什么不将延迟设置为10? – MadProgrammer 2015-01-22 01:31:09