didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 2017
-
30 déc. 2006 à 21:41
didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDerniè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.
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 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
didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 20172 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.