2010-07-28 6 views
0

Je fais un projet dans lequel je me suis passé quelque chose après un certain temps, je calcule cette fois un temps passé en mode de sommeil. si je change à nouveau l'heure, je veux terminer le fil précédent et commencer un nouveau fil. donc je veux savoir comment terminer le thread qui est en mode veille sans exécuter sa méthode d'exécution.comment mettre fin à un fil lorsqu'il est en veille?

+0

Pouvez-vous donner plus d'informations sur la langue que vous utilisez? – Raghuram

Répondre

4

Je suppose que Java lorsque vous programmez pour Blackberry?

Si oui, ne pas utiliser Thread.sleep() attendre, mais plutôt wait() sur un écran, que vous pouvez ensuite notifyAll(), à savoir

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(); 
    } 
} 

Les blocs synchronized sont importants, comme vous devez posséder le moniteur vous voulez attendre ou notifier.

Questions connexes