Le multithreading en PyQt Multithreading

1. Introduction

L’intérêt de l’usage du multithreading est manifeste dès lors que votre application doit conduire des tâches très longues. En effet, si on lance une tâche très longue dans le thread courant de l’application, une recherche par exemple, alors on risque fortement que notre application ne réponde plus. La fenêtre de l’application apparaîtra toute blanche et il sera impossible de cliquer sur l’interface ou de « faire réagir » un widget. En attente du résultat d’une tâche longue, l’application est alors inutilisable.

Le cas d’école fréquemment repris est celui d’une recherche sur le disque qui prend du temps. Par exemple, on recherche la chaîne de caractères « PyQt » dans les noms de tous les fichiers du disque courant.

Pour que l’application reste fonctionnelle, il faut absolument que le thread principal de l’application délègue la recherche de fichiers à un autre thread. Ainsi :

  • on a le thread principal de l’application ;

  • l’utilisateur fait une recherche et clique sur le bouton Rechercher ;

  • sur le clic du bouton Rechercher, on crée un nouveau thread dévolu à la recherche de fichiers ;

  • quand la recherche est terminée, on affiche les résultats et on détruit éventuellement le thread créé.

C’est...

Pour consulter la suite, découvrez le livre suivant :
couv_EPPYQT5.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Utilisation de la classe QTimer
Suivant
Pool de threads en PyQt