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 :

Mon thread s’exécute séquentiellement et pas en parallèle [QThread]


Sujet :

Multithreading

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Chatbour
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 431
    Par défaut Mon thread s’exécute séquentiellement et pas en parallèle
    Bonjour à tous,

    j'essai de réaliser ce qui suit : lorsque je clique sur un bouton, celui-ci devient gris (setEnabled(false)), puis un traitement sera effectué, et enfin le bouton redevient accessible (setEnabled(true)) :
    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
    void MainWindow::onSketchingBtnClick() {
            // Classe qui dérive de QThread
    	class OnSketchingBtnClick : public QThread {
    	public:
    		void run() {
                            // Traitement
                            processing();
                            // Rendre le bouton accessible de nouveau
    			button->setEnabled(true);
    			exec();
    		}
    	};
     
            // Rendre le bouton inaccessible
    	button->setEnabled(false);
     
            // Lancer le traitement dans un thread
    	OnSketchingBtnClick *thread = new OnSketchingBtnClick(this);
    	thread->start();
            cout << "done.." << endl;
    }
    Le problème c'est que je note pas l’exécution de la méthode setEnabled(true). C'est comme si l’exécution était séquentielle : le message de cout n'est affiché qu’après la fin du traitement tout comme le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // Rendre le bouton inaccessible
    button->setEnabled(false);
    // Traitement
    processing();
    cout << "done.." << endl;
    // Rendre le bouton accessible de nouveau
    button->setEnabled(true);
    Quelqu'un a-t-il une explication ? Merci d'avance,
    Chatbour.

  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


    ca compile ton code???

    Je te conseille de commencer par un petit tour sur la FAQ
    http://qt.developpez.com/faq/?page=Thread

  3. #3
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Comme Yan je comprend pas du tout ce que tu as fais...
    Avec un peu plus d'info et un code plus propre on devrait pouvoir t'aider.
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

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

Discussions similaires

  1. probleme : mon 2eme thread ne s'active pas.
    Par cosmoff dans le forum Général Python
    Réponses: 1
    Dernier message: 26/05/2015, 01h12
  2. Pourquoi mon Thread ne marche pas ?
    Par Cazaux-Moutou-Philippe dans le forum Delphi
    Réponses: 9
    Dernier message: 27/05/2007, 16h19
  3. [JApplet]mon applet ne s'affiche pas.
    Par yannick56 dans le forum Applets
    Réponses: 6
    Dernier message: 27/05/2004, 17h05
  4. Mon script cron n'est pas pris en compte
    Par tomnie dans le forum Linux
    Réponses: 11
    Dernier message: 31/03/2004, 11h19
  5. j'arrive pas a arreter mon thread d'arriere-plan
    Par ms91fr dans le forum Langage
    Réponses: 6
    Dernier message: 06/06/2003, 21h36

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