Les Thread

Résolu
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 - 30 déc. 2006 à 21:41
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 - 31 déc. 2006 à 18:32
Bonjour a tous,
j'ai un pb avec les thread:
code:
public class A {
   public A(){
      //la construction de l'interface graphique
      Thread MonThread = new Thread(new Lancement());
      MonThread.start();
   }

   public static vid amin(String arg[]){
      new A();
   }

   class Lancement extends Thread {
      public void run(){
         while(true){ //(j'en connais pas d'autre)
            //Lire le contenu d'une "clef" d'un fichier xml
            //Afficher le contenu de cette clef
         } //fin du while
      }//fin du "run"
   }//fin de la class Lancement
}//fin de la class A

le pb : au lancement de la class "Lancement", la valeur de la clef afficher est "correct" (c'est a dire qu'elle correspond bien a ce qui est dans le fichier).
En revanche, lorsque je modifi le fichier xml (en particulier cette clef) la valeur afficher ne change pas (c'est a dire que c'est la valeur de la precedente => comme si je n'avais rien fait).

quelqu'un saurait - il comment resoudre ce "pb" ?
merci.

4 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
31 déc. 2006 à 18:28
salut,

il faut que tu rouvres le fichier à chaque tour de boucle...sinon noeud ne sera pas mis à jour...il faut bien voir que le contenu du fichier est mappé en mémoire...d'autant plus que c'est du xml parsé...

dnas tous les cas, il faut que à chaque tour de boucle :
ouvrir le fichier
parser le xml
extraire la valeur
fermer le fichier

cela dit ca va faire ramer sévère...

ShareVB
3
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
31 déc. 2006 à 18:14
salut,

d'abord dans un while(true) il vaut mieux faire un Thread.sleep(durée); pour éviter de boucler à la vitesse du processeur...

ensuite, tout dépend de la façon dont tu ouvres, lis et fermes le fichier xml dans ton code java...

ShareVB
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
31 déc. 2006 à 18:22
merci de ton conseil (faire une pause).Ensuite, dans la methode "run" je ne fait qu'actualiser la variable qui contien la clef. c'est a dire que je remet la variable a zero (ValeurClef "";) et ensuite je rerécupere cette valeur (ValeurClef Noed.getChild("MaClef").getText();).
Seulement lorsque je fais System.out.println("" + ValeurClef); (apres avoir modifier la clef), la valeur est toujours la meme.

merci.
0
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
31 déc. 2006 à 18:32
ok merci.
0
Rejoignez-nous