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

SWT/JFace Java Discussion :

[SWT] Lancement d'un thread accedant à des ressouces SWT lors de la fermeture de l'ap


Sujet :

SWT/JFace Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 22
    Points
    22
    Par défaut [SWT] Lancement d'un thread accedant à des ressouces SWT lors de la fermeture de l'ap
    Voila, je travail sur une application eclipse rcp.

    J'ai besoin d'acceder à des ressources swt via un thread. Le probleme se pose lorsque je ferme l'application, alors qu'un thread modifie ces ressources. J'obtiens une jolie exception org.eclipse.swt.SWTException: Widget is disposed.

    Le bout de code qui pause probleme est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    display.syncExec(new Runnable()
    			{
    				public void run()
    				{
                                          //Mon traitement
    				}
    			});
    Je ne vois pas de quel façon empecher cette exception.
    (en agrementant ce bout de code d'un if (!display.isDisposed()), ça ne change rien).

    Merci à vous

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Août 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2006
    Messages : 218
    Points : 305
    Points
    305
    Par défaut
    Bonjour,

    A mon avis, il faut rajouter le test isDisposed() dans le code de ta section "Run", par exemple


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     display.syncExec(new Runnable()
                {
                    public void run()
                    {
                     // Ici
                     if (!composite.isDisposed()) {
                          composite.update();
                     }
                    }
                });
     
    Laurent

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    J'ai deja un test sur display, et sur le composite que je vais modifier, mais si le test n'est pas fait au bon moment, ça passe pas.

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Août 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2006
    Messages : 218
    Points : 305
    Points
    305
    Par défaut
    Peux-tu poster le code ou me l'envoyer en PJ à l'adresse laurent.caron [chez] gmail [point] com ?

    Je regarderais

    Laurent

Discussions similaires

  1. [Astuce][Thread]Utilisation des blocs synchronized
    Par Pill_S dans le forum Concurrence et multi-thread
    Réponses: 14
    Dernier message: 21/07/2004, 14h14
  2. Réponses: 3
    Dernier message: 11/02/2004, 12h50
  3. [Tomcat][Servlet] créer et acceder à des fichier du localhos
    Par djodjo dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 12/01/2004, 17h30
  4. [SWT] Un bon coin ou trouver des infos pratik
    Par yolepro dans le forum SWT/JFace
    Réponses: 8
    Dernier message: 04/12/2002, 14h08

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