2010-07-28 172 views
0

我正在製作一個項目,在這個項目中我會在某段時間後發生某些事情, 我計算出那個時間在睡覺方法中的時間。 如果我再次改變時間,那麼我想結束前一個線程並開始一個新的線程。 所以我想知道如何結束睡眠方法中的線程而不執行它的運行方法。如何在睡眠時結束線程?

+0

您可以提供有關您正在使用的語言的更多信息嗎? – Raghuram 2010-07-28 07:31:19

回答

4

當您爲Blackberry編程時,我會假設Java?

如果是的話,不要用Thread.sleep()等待,而是wait()的監視器上,您可以再notifyAll(),即

private Object waitObject = new Object(); 

public void doWait() { 
    synchronized (waitObject) { 
    waitObject.wait(10*1000); // wait up to 10 seconds 
    } 
} 

public void wakeUp() { 
    synchronized (waitObject) { 
    waitObject.notifyAll(); 
    } 
} 

的​​塊是重要的,因爲你需要爲自己的顯示器,你想等待或通知。