我的程序要求以1000毫秒的时间间隔显示或输出循环内部的结果。 是否可以输入定时器代码:
int delay2= 1000;
final Timer timer2 = new Timer();
timer2.schedule(new TimerTask(){
public void run(){}
},delay2, 1000);
在循环内打印答案:
System.out.println("dec2 "+deck2[g]);
System.out.println("dec1 "+deck1[g]);
在1000毫秒的时间间隔内?
感谢阅读。
编辑:这会有用吗?final Timer timer2 = new Timer();
timer2.schedule(new TimerTask(){
public void run(){
System.out.println("COUNT"+count);
for(int g = 0;g<e+1;g++)
{
System.out.println("dec2 "+deck2[g]);
System.out.println("dec1 "+deck1[g]);
}
}
},delay2, 1000);
EDIT2:或者这个?
long t = new Date().getTime(); // time now in millies
do {
for( g = 0;g<e+1;g++)
{
final long now = new Date().getTime();
if( now - t >= 1000 ) {
System.out.println("dec2 "+deck2[g]);
System.out.println("dec1 "+deck1[g]);
t = new Date().getTime(); // reset reference time
}
}
count--;
} while( count==0 );
答案 0 :(得分:1)
如果你不介意性能影响,你可以做这样的事情。
long t = new Date().getTime(); // time now in millies
do {
// do something here
// ...
final long now = new Date().getTime();
if( now - t >= 1000 ) {
// do your logging
// ...
t = new Date().getTime(); // reset reference time
}
} while( someCondition );
答案 1 :(得分:0)
没有。你可以制作'g'和实例变量,并在当时的run()方法中使用它来做你想要的。
类似的东西:
private int g = 0;
private startTimer()
{
final Timer timer = new Timer();
timer.schedule(new TimerTask(){
public void run(){
g++; // Incrementing the counter.
System.out.println("dec2 "+deck2[g]);
System.out.println("dec1 "+deck1[g]);
// Stop the timer when done.
if (g >= e + 1) timer.cancel();
}
}, delay, 1000);
}