Lancer un Thread en Boucle [C++/Qt]
DrCrow
Messages postés
387
Date d'inscription
Statut
Membre
Dernière intervention
-
dd -
dd -
Bonjour, ^^
j'ai un soucis et j'arrive pas a exécuter un Thread en Boucle ( C++ / Qt )
voici un petit code :
Si je mets un For dans la fonction run, je pourrais plus controler le thread, étant qu'il ne se terminera guerre......
Merci de m'éclaircir sur ce point....
j'ai un soucis et j'arrive pas a exécuter un Thread en Boucle ( C++ / Qt )
voici un petit code :
//Includes... main.cpp ------------ int main(int argc, char *argv[]) { Thread *myThread = new Thread; myThread->start(QThread::HighPriority); //...... }
class Thread : public QThread { public: Thread() { i=0; } void run() { qDebug()<<"Th:1>>> "<<i; i++; } private: int i; };
Si je mets un For dans la fonction run, je pourrais plus controler le thread, étant qu'il ne se terminera guerre......
void run() { for(/*....*/) { qDebug()<<"Th:1>>> "<<i; i++; } }
Merci de m'éclaircir sur ce point....
A voir également:
- Lancer un Thread en Boucle [C++/Qt]
- Lancer une application au démarrage windows 10 - Guide
- Qt sdk - Télécharger - Langages
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
5 réponses
Salut,
Déjà, déclare la macro Q_OBJECT dans ta classe Thread.
Ensuite, il faut que tu lance sa boucle evennementielle, avec la méthode exec() il me semble.
Et dans ton main t'attend que le signal terminated() du thread soit émis.
Déjà, déclare la macro Q_OBJECT dans ta classe Thread.
Ensuite, il faut que tu lance sa boucle evennementielle, avec la méthode exec() il me semble.
Et dans ton main t'attend que le signal terminated() du thread soit émis.
Oui il est nécessaire d'avoir une boucle principale.
D'autre part, il faut comprendre que Qt a besoin d'une initialisation (et d'une finalisation) de son environnement avant d'utiliser une quelconque classe.
Généralement on déclare une unique instance de 'QApplication' mais, si tu ne fais pas appel à 'GUI', tu peux utiliser une instance de 'QCoreApplication'.
Voir la doc de Qt pour de plus amples précisions.
Bonne continuation.
D'autre part, il faut comprendre que Qt a besoin d'une initialisation (et d'une finalisation) de son environnement avant d'utiliser une quelconque classe.
Généralement on déclare une unique instance de 'QApplication' mais, si tu ne fais pas appel à 'GUI', tu peux utiliser une instance de 'QCoreApplication'.
Voir la doc de Qt pour de plus amples précisions.
Bonne continuation.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
et pour la dernière ??
>> Et dans ton main t'attend que le signal terminated() du thread soit émis. <<
j'ai tout mit dans le main