IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDT/SwingWorker Java Discussion :

Mise à jour de l'interface hors EDT


Sujet :

EDT/SwingWorker Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut Mise à jour de l'interface hors EDT
    J'ai bien compris l'utilisation de la méthode invokeLater() à partir d'un thread
    pour mettre à jour l'interface graphique, car cela doit se faire dans l'EDT.
    Cependant, je me demande quels sont les risques, concrètement, à ne pas passer par l'utilisation de cette méthode et donc à rafraichir mes composants, directement dans un autre Thread que l'EDT.

    Merci pour vos lumières.

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Si l'utilisateur a la politesse de ne rien faire pour laisser ton programme faire son traitement, tout ira bien. Les problèmes arriveront si jamais tu tombes sur des utilisateurs actifs.

    À toi de voir...

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    Merci pour ta réponse mais je pense que tu n'as pas compris ma question, ou que je n'ai pas été clair.
    J'utilise un autre thread pour mes traitements longs, comme ça je n'ai pas de problème d'application qui "freeze".
    Cependant il est conseillé de mettre à jour l'interface graphique (dans mon cas à la fin du traitement long), via la méthode invokeLater, pour que ce soit l'EDT qui le gère. Jusque là ok, mais je demande quel est le risque de ne pas utiliser invokeLater et donc de ne pas passer par l'EDT pour rafraichir mon interface.
    J'espère avoir été plus clair.

  4. #4
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Ben c'est moi qui n'est pas été clair, mais je persiste : si, au moment où tu mets à jour ton affichage swing, sans passer par le edt, l'utilisateur humain intervient sur l'affichage, alors il y a un risque pour que cela ne fonctionne pas bien.

    À ce moment là, en effet, il y aura deux threads qui utiliseront les mêmes espaces mémoires (ceux utilisés par la GUI), et cela peut se passer très mal : nous sommes dans le cas des accés concurrents.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    Ok, effectivement c'est beaucoup plus clair.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problèmes dans la mise à jour de l'interface
    Par Titelouve dans le forum EDT/SwingWorker
    Réponses: 3
    Dernier message: 14/03/2011, 19h59
  2. Injection mise à jour antivirus hors connexion
    Par bahrob dans le forum Sécurité
    Réponses: 0
    Dernier message: 16/04/2010, 16h54
  3. Mise à jour automatique de l'interface graphique
    Par Christophe_stevenin dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 11/03/2008, 14h56
  4. Interface de mise à jour
    Par Moine dans le forum Débuter
    Réponses: 5
    Dernier message: 07/03/2008, 16h22
  5. [SWING] Mise a jour de l'interface dans les événements
    Par woods dans le forum EDT/SwingWorker
    Réponses: 3
    Dernier message: 23/11/2005, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo