我有一個按鈕的主窗體,按下時,應該啓動一個新的倒計時器線程。Thread.sleep暫停整個程序
這是該按鈕的動作監聽器代碼:
Counter c = new Counter(timeToFinish);
這是Counter類代碼:
class Counter implements Runnable {
int waitingTime = 0;
Thread myCounter = new Thread(this);
public Counter(int waitingTime)
{
this.waitingTime = waitingTime;
myCounter.run();
}
public void run(){
//Start countdown:
do
{
waitingTime -= 1;
try {
Thread.sleep(1000);
System.out.println(waitingTime);
} catch (InterruptedException e) {
e.printStackTrace();
}
} while (waitingTime >= 0);
}
}
的問題是,當我創建了計數器的新實例它會暫停整個程序,而不僅僅是那個線程!該問題必須與「Thread.sleep」。
爲什麼程序暫停?是因爲當前線程是UI線程嗎?通常主線程應該通過每個計數器停留1秒來運行? – ssinganamalla 2014-03-13 05:06:51