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

Multithreading Discussion :

Mettre le thread principal en attente


Sujet :

Multithreading

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Par défaut Mettre le thread principal en attente
    Bonjour, je vous contacte, car je bloque un peu sur un de mes programmes ^^'.

    je vous explique mon problème, j'ai mon thread principal(c'est a dire le thread GUI) qui contient un QTabWidget, avant de remplir ce QTabwidget, je demande a mon serveur de m'envoyer les données qui serviront a le remplir, la ou je bloque c'est au moment ou je voudrait que le Thread principal attende la réception du bon packet, pour pouvoir continuer.

    merci d'avance =)

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut.
    Qu'entend tu par attendre?

  3. #3
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Par défaut
    ce que j'entends par attendre, c'est que le thread principal, n'execute pas par exemple ce code
    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
    for(QVector<QString>::iterator itr = sqlResult.begin(); itr != sqlResult.end(); ++itr)
    	{
    		QStringList list = (*itr).split("# ");
     
    		QTableWidgetItem *id = new QTableWidgetItem();
    		QTableWidgetItem *titre = new QTableWidgetItem();
    		QTableWidgetItem *auteur = new QTableWidgetItem();
    		QTableWidgetItem *contenu = new QTableWidgetItem();
     
    		id->setText(list.at(1).toUtf8());
    		auteur->setText(list.at(2));
    		titre->setText(list.at(3));
    		contenu->setText(list.at(4));
     
    		extended.tableWidget->insertRow(extended.tableWidget->rowCount());
    		extended.tableWidget->setItem(extended.tableWidget->rowCount()-1, 0, id);
    		extended.tableWidget->setItem(extended.tableWidget->rowCount()-1, 1, titre);
    		extended.tableWidget->setItem(extended.tableWidget->rowCount()-1, 2, auteur);
    		extended.tableWidget->setItem(extended.tableWidget->rowCount()-1, 3, contenu);
    	}
    tant que j'ai pas eu le packet qui permet de remplir le QTabWidget

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Tous dépend de ce qu'il doit se passer pendant l'attente.
    Tu peut par exemple utiliser une QPorgressDialog ou une QEventLoop locale.

  5. #5
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Par défaut
    bah pendant l'attente, je dois recevoir mon packet qui contient les données du tableau

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Par défaut
    Tu n'as qu'à mettre "l'initialisation de ta fenêtre" dans un slot, qui sera appelé par un signal émis lorsque le thread réseau aura reçu son paquet.

    Sinon, les dialogs sont aussi une solution.

    G.

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/08/2012, 18h18
  2. [Débutant] Mettre le programme principal en attente de l'Interf Graphique
    Par JonDoeULB dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 18/07/2011, 14h25
  3. attente du thread principal
    Par jojo_ol76 dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 30/06/2011, 00h42
  4. Mise en attente du thread principal
    Par chris78 dans le forum EDT/SwingWorker
    Réponses: 1
    Dernier message: 15/03/2010, 14h53
  5. Comment mettre une classe principal en pause, sans arreter les threads
    Par KOULARK dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 28/11/2009, 22h19

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