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 en attente du thread principal


Sujet :

EDT/SwingWorker Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Par défaut Mise en attente du thread principal
    Bonjour,

    Pas très à l'aise en Swing et plus particulièrement dans la gestion des threads, je vous soumets mon problème.

    J'ai actuellement une application client-serveur qui tourne.
    Lorsque je clique sur "Quitter", une boîte de dialogue demande à l'utilisateur s'il veut sauvegarder les modifications avant de quitter (comportement standard).

    Cela dit, l'enregistrement peut être long et j'ai donc besoin que la fenêtre attende la fin de l'enregistrement pour se fermer (et donc fermer le thread principal)

    Actuellement j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    protected void quitter() {
    			int reponse = JOptionPane.showConfirmDialog(vue, _resourceMsg
    					.getString("ConfirmationSauvegarde.Message"), _resourceIHM
    					.getString("ConfirmationSauvegarde.Titre"), JOptionPane.YES_NO_CANCEL_OPTION,
    					JOptionPane.QUESTION_MESSAGE, ihm.Icones.QUESTION);
    			if (reponse == JOptionPane.YES_OPTION) {
    				enregistrerTout();
    			} else if (reponse == JOptionPane.CANCEL_OPTION) {
    				return;
    			}
    		} else {
    			int reponse = JOptionPane.showConfirmDialog(vue, _resourceMsg
    					.getString("ConfirmationQuitter.Message"), _resourceIHM
    					.getString("ConfirmationQuitter.Titre"), JOptionPane.YES_NO_OPTION,
    					JOptionPane.QUESTION_MESSAGE, ihm.Icones.QUESTION);
    			if (reponse == JOptionPane.NO_OPTION) {
    				return;
    			}
    		}
     
                    // SYNCHRO A FAIRE
     
    		vue.dispose();
    	}
    et enregistrerTout() s'effectue dans un thread à part avec barre de progression. Je voudrais donc attendre la fin de ce thread pour fermer ma fenêtre principal mais j'ai essayé avec un sémaphore, cela ne fonctionne pas.

    Pourriez vous m'orienter sur la façon la plus propre de faire cela ?

    Merci par avance,

  2. #2
    Membre très actif Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Par défaut
    Bonjour,

    pour la synchro il te faudrai une reference vers ton thread et simplement faire un tonThredQuiEnregistreTout.join()
    la method join va attendre la mort du thread tonThredQuiEnregistreTout

Discussions similaires

  1. attente du thread principal
    Par jojo_ol76 dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 30/06/2011, 01h42
  2. Mettre le thread principal en attente
    Par luffydu22 dans le forum Multithreading
    Réponses: 5
    Dernier message: 07/12/2010, 10h36
  3. Mise en attente de threads
    Par Griswold dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/10/2009, 16h21
  4. [CSS]Mise en forme du bloque principal
    Par Analfabete dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 12/02/2006, 18h35

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