Thread qui se met pas en pause
Bonsoir,
J'ai un souci avec un Thread qui veut pas se mettre en pause. J'ai suivi les indications des FAQs de ce site, mais je n'ai pas réussi à venir à bout du problème. Voici mon code, d'ailleur largement inspiré d'une FAQ:
Dans la classe Calcul, qui étend Thread:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public void run()
{
int monInt=essai.getnombre();
essai.setNombre(monInt);
while(!fin)
{
monInt++;
essai.getLabel().setText("The Number is : "+monInt);
synchronized(this)
{
Thread.yield();
System.out.println(stopThread);
fin=stopThread;
}
}
}
public synchronized void stopMyThread()
{
this.stopThread=true;
} |
La classe essai présente une JFrame avec deux boutons, voici la méthode gérant les actions associées:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| public void actionPerformed(ActionEvent arg0)
{
Calcul calcul=new Calcul(this);
if(arg0.getActionCommand().equals("Start"))
{
calcul.start();
}
if(arg0.getActionCommand().equals("Cancel"))
{
calcul.stopMyThread();
System.out.println("la réponse est : "+calcul.isStopMyThread());
}
} |
Le system.out.println renvoi "la réponse est true", donc le booléen stopThread est bien modifié lorsque j'appuie sur "Cancel", mais immédiatement après il repasse à false (le System.out.println dans la méthode run qui renvoie des false) et du coup, on reste dans la boucle while.
Quelqu'un aurait-il une idée à me proposer?
Je vous remercie dans tous les cas de vos réponses et vos conseils :-)