Qt : comment implanter un thread

L’application

Voici à présent le fichier main.cpp

Après avoir déclaré une instance de QCoreApplication, nous démarrons le contrôleur et exécutons le traitement threadé. Au bout de 2 secondes, nous interrompons le traitement, puis 1/2 seconde plus tard nous le reprenons, pour finalement quitter l’application 1 seconde après.

Nous avons affiché un certain nombre de messages pour observer le fonctionnement des threads :

Nous constatons plusieurs choses :

  • Le thread principal a pour identifiant 0x61c
  • Le nouveau thread a pour identifiant 0x1770
  • Les fonctions du worker qui contrôlent l’exécution du thread, demarreTraitement(), interromptTraitement() et reprendTraitement(), sont exécutées dans le thread principal
  • Les itérations sont exécutées dans le nouveau thread
  • Les slots correspondant aux signaux émis par le worker sont exécutés dans le thread principal
  • La fin du thread, la destruction du worker et du contrôleur sont parfaitement synchronisés grâce aux signaux qu’ils s’envoient. Ceci est très important car dans le cas contraire l’application pourrait planter.
  • Dans le worker, la fonction qui démarre le traitement s’exécute dans le thread principal. Cela signifie que tous les appels synchrones effectués dans cette fonction s’exécutent dans le thread principal. D’où l’utilisation du QTimer pour déclencher l’itération, afin d’être certain que l’itération (la première itération) s’effectuera bien dans le nouveau thread.

Partagez cet article !

Abonnez-vous à notre newsletter !

Si vous souhaitez être notifié lorsqu'un nouvel article est publié, abonnez-vous à notre newsletter et vous recevrez un email dès qu'un article sera publié.

Pages : 1 2 3

Articles similaires

Qt : comment implanter un... L’application Voici à présent le fichier main.cpp [crayon-5d83aeb06a544340953080/] Après avoir déclaré une instance de QCoreApplication, nous démarrons le contrôleur et exécutons le traitement threadé. Au bout de
Qt : distribuer ses appli... La distribution d’une application est une étape importante de la vie d’une application, elle nécessite d’être pensée très tôt dans la conception. Cette série d’articles présente les
Qt : pourquoi et quand ut... Pourquoi créer des threads Ceci étant dit, ce qui nous intéresse dans cet article est aussi de savoir quand il est opportun de créer des threads. Je
Livre Maîtrisez Qt 5 ... La seconde édition du livre de Tristan Israël, Maîtrisez Qt 5 – Développement d’applications professionnelles, est parue. Vous pouvez le découvrir sur le site des éditions ENI.
Qt : l’influence du... Résultats Voici la liste des résultats obtenus sur différentes plateformes d’exécution. Je rappelle que seuls les résultats les plus significatifs ont été conservés, si vous souhaitez obtenir
Adopter les flux tirés d... Nous abordons un des points essentiels de l’architecture réseau et applicative efficace et économe : les flux tirés. Partagez cet article ! Abonnez-vous à notre newsletter !
Apprendre à développer ... Une de mes activités est la formation professionnelle à la conception et à la programmation d’applications avec Qt. J’envisage aujourd’hui de créer un MOOC payant pour partager
Utiliser la technique du ... Le lazy-loading, ou chargement paresseux en français, est une réponse simple à la question simple “pourquoi charger plus de données que nous ne pouvons en afficher ?”.
Qt : Traiter une liste de... Pour qu’une interface graphique reste fluide aux yeux de l’utilisateur, le thread qui la gère ne doit jamais être interrompu plus d’une poignée de millisecondes. Or le

Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *