Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5281 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Attendre avant de poursuivre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Attendre avant de poursuivre

n°808618
ruready
Posté le 28-07-2004 à 13:15:43  profilanswer
 

Bonjour,
 
J'aimerai attendre qq secondes dans mon code, c'est a dire suspendre l'execution du code.
 
J'ai essayé d'utilisé la classe Timer, mais comment "bloquer" l'execution? car j'arrive à "faire" qqchose apres un certain temps :
 

Code :
  1. ActionListener taskPerformer = new ActionListener() {
  2.       public void actionPerformed(ActionEvent evt) {
  3.             thisJPanel.show();
  4.       }};
  5. timer = new Timer(delay, taskPerformer);


 
mais moi je voudrais juste bloquer l'execution du "code":
 
genre:
 

Code :
  1. ---code---
  2. timer = new Timer(delay);
  3. "attendre timer";
  4. ---code suite---


 
je vois pas.
 
j'espere que mes explications sont pas trop brouillon...
 
merci d'avance

mood
Publicité
Posté le 28-07-2004 à 13:15:43  profilanswer
 

n°808619
nraynaud
lol
Posté le 28-07-2004 à 13:18:27  profilanswer
 

java.lang.Thread. sleep(long millis)


---------------
trainoo.com, c'est fini
n°808620
lorill
Posté le 28-07-2004 à 13:18:39  profilanswer
 

Thread.sleep(5000);

n°808621
nraynaud
lol
Posté le 28-07-2004 à 13:21:58  profilanswer
 

oulà, j'avais pas vu. Il faut pas faire ça dans un event handler, sinon, tu bloques toute l'interface graphique.


---------------
trainoo.com, c'est fini
n°808646
ruready
Posté le 28-07-2004 à 13:44:11  profilanswer
 

merci j'essaie de faire ca...

n°809461
ruready
Posté le 29-07-2004 à 06:53:30  profilanswer
 

nraynaud a écrit :

oulà, j'avais pas vu. Il faut pas faire ça dans un event handler, sinon, tu bloques toute l'interface graphique.


 
En effet, ca bloque l'interface graphique, comment faire alors?

n°809563
axk47
Java Man vs Boolet Man
Posté le 29-07-2004 à 10:10:07  profilanswer
 

Plusieurs possibilités
 
1- essaie celle-là
 
while(!flag){
 
try{
wait();
}catch(Exception exc){}
 
}//end while


---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein
n°809595
axk47
Java Man vs Boolet Man
Posté le 29-07-2004 à 10:18:45  profilanswer
 

excuse fausse manip
 
plusieurs possibilités
1- try-catch avec wait
 
while(!flag){
 
try{
wait();
}catch(Exception exc){}
 
}//end while
 
par contre il faut declarer flag comme un boolean de type volatile que tu modifiera pour pouvoir continuer
 
 
2- la méthode Thread.sleep(nombredemillisecondes) devrait aussi marcher
 
3- tu recuperes le temps courant de la machine
t1=System.currentTimeMillis();
 
ensuite tu fais une boucle dans laquelle
 tu ne fais rien
 
while(System.currentTimeMillis()<t1+Delta);
 
Delta etant le temps que tu voudrais attendre  
 
je pense que mes soltutions te seront utiles
 :)  


---------------
"Rendez tout aussi simple que possible mais ne simplifierez rien" Albert Einstein
n°809726
ruready
Posté le 29-07-2004 à 11:10:04  profilanswer
 

j'vais essayer merci

n°809779
masklinn
í dag viðrar vel til loftárása
Posté le 29-07-2004 à 11:47:27  profilanswer
 

si tu veux pas bloquer ton UI, il faut créer un thread (ou un processus, mais le thread ici c'est mieux) dans lequel tu exécutes le code (pense à créer des mutex et autres locks histoire d'éviter l'exécution de plusieurs threads identiques et accès à des données en cours de création/modification).
 
en gros:
 
UI
|
|
action
|\
UI\
|.thread de traitement (en // avec le thread de base contenant l'UI)
|.|
|.|
|.|
|.|
|.|
|.Fin du traitement
|.Kill du thread de traitement
|
|
 
de cette manière, le traitement de l'action ne bloque pas l'UI et un sleep ne pose aucun problème (il fait pauser le thread secondaire mais pas l'UI)


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
mood
Publicité
Posté le 29-07-2004 à 11:47:27  profilanswer
 

n°809818
nraynaud
lol
Posté le 29-07-2004 à 12:20:35  profilanswer
 

ruready a écrit :

En effet, ca bloque l'interface graphique, comment faire alors?

il sert à quoi ton arrêt ?


---------------
trainoo.com, c'est fini

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Attendre avant de poursuivre

 

Sujets relatifs
MFC : Attendre une réponse du serveur[batch] Attendre quelque seconde
Attendre la fermeture d'un form pour poursuive une procédure[JS]attendre le chargement complet d'un popup...?
comment faire attendre a un sendkey 6 secondes avant de s executer???Attendre un instant avant de reprendre
Attendre un évènement en base de données dans une servlet[Swing] Attendre la fin d'un repaint() pour continuer l'execution...
comment attendre la fermeture d'une frame[Projet SUIVI] Attendre la fin d'un processus..
Plus de sujets relatifs à : Attendre avant de poursuivre


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)