public void demarrerThread(){
monThread T1 = new monThread();
T1.start();
}
voici la methode pour arreter le thread ( NE MARCHE PAS ).
poublic void stoperThread(){
monThread T1 = new monThread();
try{
if (T1.isAlive()){
deconnecteServeur(); // methode pour se deconnecter du serveur
// au fait il s'agit d'une com CLIENT -SERVEUR
T1.Interrupt();
T1 = null;
}
}catch(Exception e){
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 17 sept. 2009 à 02:42
Si le thread appelle fréquemment des méthodes qui jettent InterruptedException, il retourne simplement de la méthode run après avoir reçu l'exception:
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
//We've been interrupted: no more messages.
return;
}
Si un thread tourne longtemps sans appeler une méthode qui jette InterruptedException, alors il doit périodiquement appeler Thread.interrupted, qui retourne vrai si un interrupt a été reçu. Par exemple:
for (int i = 0; i < inputs.length; i++) {
//...work
if (Thread.interrupted()) {
//We've been interrupted: no more work.
return;
}
}
Une autre façon d'arrèter un thread consiste à modifier une variable pour indiquer que le thread doit s'arrèter. Le thread doit interroger régulièrement cette variable, et retourner de la méthode run si la variable indique qu'il doit s'arrèter.
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 20129 17 sept. 2009 à 20:50
Je pense que tu n'as pas saisie la troisième façon d'arrèter le thread: au lieu de sortir tout de suite de la méthode run, tu entre dans une nouvelle boucle...