2010-07-28 175 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(); 
    } 
} 

的​​块是重要的,因为你需要为自己的显示器,你想等待或通知。