作者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
推 PsMonkey:你的程式邏輯本身就怪怪的吧? while 會一直作... 09/25 20:00
推 stukk:你雖然啟動Timer但main thread還是一直在while loop 09/25 20:06
→ jimshsu:那請問我的主要程式那邊要如何讓目前狀態變成依照我設定 09/26 00:08
→ jimshsu:的時間間隔去檢查server的狀態? 09/26 00:10
推 stukk:把檢查伺服器狀態的部份寫在Timer裡面,並設定Timer週期性檢 09/26 10:32
→ stukk:查->schedule(TimerTask task, long delay, long period) 09/26 10:33
→ stukk:這樣一來就不需要使用到whileloop 09/26 10:36