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 :

run() en protected : problème de compilation [QThread]


Sujet :

Multithreading

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 198
    Par défaut run() en protected : problème de compilation
    Bonjour,

    A partir d'un exemple j'ai fait le code suivant avec l'implémentaion de la fonction virtuelle run() en protected :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Thread : public QThread
    {
    	Q_OBJECT
    public:
    	Thread();
     
     
    protected:
    	void run();
     
    private:
    	volatile bool stopped;
    	QMutex mutexListe;
    };

    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
    Thread::Thread()
    {
      stopped = false;
    }
     
    void Thread::run()
    {
      forever {
        mutexListe.lock();
        if (!Liste.isEmpty()) {
           QString jobname(Liste.first());
           Liste.removeFirst();
           mutexListe.unlock();
           //Mon code QProcess
        }
        else {
              mutexListe.unlock();
              break;
        }
      }
    }
    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
     #include <QApplication>
     #include <QtCore>
     
     #include "Thread.h"
     
     int main(int argc, char *argv[])
     {
         QApplication app(argc, argv);
     
      int noeuds(4);
      QStringList Liste;
      Liste << "a" << "b" << "a" << "b" << "a" << "b" << "a" << "b" << "a" << "b";
     
      for (int i(0) ; i < noeuds ; ++i)
      {
      	Thread * un_thread;
      	un_thread = new Thread;
      	un_thread->run();
      }  
     
      return 0;
     }
    Cependant à la compilation j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Thread.h: In function `int qMain(int, char**)':
    Thread.h:9: error: `virtual void Thread::run()' is protected
    main.cpp:18: error: within this context
    mingw32-make[1]: *** [debug/main.o] Error 1
    mingw32-make[1]: Leaving directory `L:/CPP/Qt/QThread'
    mingw32-make: *** [debug] Error 2

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Ce n'est pas run() qu'il faut appeler pour lancer un QThread mais start(). En effet run() est protected (d'où le message d'erreur) et ne sert qu'à l'implémentation de son thread.

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

Discussions similaires

  1. VB6 - Problème de compilation avec un Objet - Run-Time Error 91
    Par Hadware dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 18/12/2008, 21h13
  2. problème de compil devc++ socket
    Par stefdem dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2003, 11h33
  3. Réponses: 1
    Dernier message: 29/10/2003, 12h16
  4. Problème de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/04/2003, 16h46
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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