作者jimshsu (jims)
看板java
标题[J2SE] 请问Timer的执行方式
时间Thu Sep 25 19:34:20 2008
请问各位
我最近写了一个东西
想要固定时间去检查某server的状态
该server那边会传回DONE代表正确
我的程式才会继续後面的执行
但是我用以下的方式...程式却是不间段的一直检查
我明明是设定了60秒...
我贴上简略的code..能否有那位版友可以看出端倪
import java.util.Timer;
import java.util.TimerTask;
int seconds = 60;
.....略
//主要执行的部分
while(jg.getStatus()!= "DONE"){
checkStart();
}
timer.cancel();
//////下面是checkStart()的方法
public void checkStart() {
timer.schedule(new TimerTask() {
public void run() {
checkStatus();
}
private void checkStatus() {
System.out.println("Not yet!");
}
}, seconds * 1000);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.194.41
1F:推 PsMonkey:你的程式逻辑本身就怪怪的吧? while 会一直作... 09/25 20:00
2F:推 stukk:你虽然启动Timer但main thread还是一直在while loop 09/25 20:06
3F:→ jimshsu:那请问我的主要程式那边要如何让目前状态变成依照我设定 09/26 00:08
4F:→ jimshsu:的时间间隔去检查server的状态? 09/26 00:10
5F:推 stukk:把检查伺服器状态的部份写在Timer里面,并设定Timer周期性检 09/26 10:32
6F:→ stukk:查->schedule(TimerTask task, long delay, long period) 09/26 10:33
7F:→ stukk:这样一来就不需要使用到whileloop 09/26 10:36