Bonjour,
Je rencontre en ce moment des problèmes de développement relatifs au multithreading sous Qt 4.3.4, j'aimerais avoir votre avis sur la question:
Il s'agit de créer une wait dialog au sein d'une application. Celle ci doit faire défiler une suite d'image PNG en actualisant un timer au fil du temps, tandis qu'une opération lourde se produit (chargement de données, export).
J'ai donc créé une classe dérivé de QThread qui envoit un signal au GUI thread pour l'actualiser. Le problème est que le slot du GUI thread n'est appelé qu'à la fin de l'opération. En utilisant Qt:irectConnection pour connecter directement le thread au GUI thread, j'ai pour résultat que la méthode d'update qui actualise la wait dialog est alors appelé depuis ce thread (au lieu du GUI thread comme c'était le cas avec Qt::AutoConnection par default), ce qui provoque un crash.
Je précise que lorsque j'utilise Qt::AutoConnection par défault pour le connect, j'arrive à afficher la suite de png lorsque le GUI thread est libre.
La question est finalement comment libérer le GUI thread des opérations qu'il est en train de réaliser à une fréquence donnée pour lui faire réaliser d'autres opérations. Avec un timer dans le GUI thread le résultat est le même.
En parcourant le forum, je n'ai pas trouvé de solutions à ce problème.
Si vous avez des pistes, merci de m'éclaircir
Cdt,
Coco
Partager