Bonjour
je suis débutanate en java!
ds une applet je veux faire unbouton de Pause\Resume pour suspendre l'exécution sachant que les threads qui sont en train d'exécuter simultanément sur cette applet.
aidez moi!!
Version imprimable
Bonjour
je suis débutanate en java!
ds une applet je veux faire unbouton de Pause\Resume pour suspendre l'exécution sachant que les threads qui sont en train d'exécuter simultanément sur cette applet.
aidez moi!!
Comme il a été cité souvent sur le forum, il n'est pas possible de tuer les threads. Par contre tu peux inserer dans l'execution des threads une vérification d'un drapeau par exemple qui devient true si tu dois arreter l'execution.
Par exemple:
Quand tu cliques sur un boutton, tu met flag a true
Code:
1
2
3
4
5
6
7
8
9 /* ... */ boolean flag = true; public void run(){ while(flag){ /*... ton code ... */ } }
Et cela n'est-il pas similaire a appeler les methodes interrupt()/isInterrupted() d'une Thread ? (interrupt() etant une methode qui en plus se charge de lever les exceptions qu'il faut lorsque la thread est en attente ou en train de dormir).
je suis arrivé à bloquer les threads en faisant une variable d'arrêt.
sachant que chaque thread fait ses propores affichages et dessins sur une applet commune pr tous les threads.
Le problème est que la procédure de run est longue et le test de cette variable qui déclenche l'arrêt se trouve au début de la procédure donc je peux bloquer seulement les threads qui n'ont pas encore exécuter "run" mais non pas ceux qui sont déjà en train d'exécuter.
Alors comment faire pr les suspendre à n'importe quel moment ?!!!!
Aider moi!! ça fait partie de mon projet de fin d'étude...
En faisant des tests intermediaires a intervalles reguliers histoire de pouvoir sortir du run() quand la thread est interrompu par exemple...
Note : normalement une thread externe n'est pas sensee directement manipuler l'affichage ; ce dernier doit-se faire durant l'EDT (Event Dispatch Thread) dans AWT/Swing.