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 :

[Prise de tête] Communication entre 2 QThread [QThread]


Sujet :

Multithreading

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut [Prise de tête] Communication entre 2 QThread
    Hello messieurs les développeurs ! :-)

    Je travaille actuellement sur une application QT dont voici un petit UML de mon programme :



    Juste pour comprendre le fonctionnement : Nous sommes dans un centre vétérinaire, la classe serveur récupère des trames réseau d'un programme distant, en fonction du contenu de ces dernières la classe serveur va créer plus ou moins de salles. Dans ces salles, on effectuera la gestion du chauffage et de la ventilation (en réalité il y a d'autres taches à effectuer comme la surveillance ect. mais j'ai simplifiée ici) ! La classe serveur et la classe salle sont composées d'IHM graphiques permettant de savoir facilement ce qui s'y passe.

    Oui mais voila ... j'avais déjà réalisée une application par le passée qui fonctionnait au poil, mais dès que l'on avait plus de 4/5 salles simultanément, les IHM graphiques ramaient tellement que le programme devenait inutilisable ! >_<

    Du coup je me suis lancée un nouvel objectif ... LES THREADS(tadaaaaaaam !)

    Je me suis donc projetée dans cette optique : dans chaque salle, j'aimerais créer un thread pour chaque tache à effectuer. Ces dernières pourront communiquer avec la classe Salle par l'intermédiaire de "this" passé en paramètre lors de la création de chaque thread. La classe Salle sera donc chargée simplement de l'affichage des messages transmis par les différentes threads !

    Le problème c'est que ce n'est apparemment pas si simple ... lorsque j'essaye de faire sa j'obtiens lors de l'exécution des messages d'erreurs du genre "QObject: Cannot create children for a parent that is in a different thread" et j'en passe des meilleures.

    Je me suis donc un peu renseignée sur la question et il apparaitrait qu'il faille utiliser des méthodes genre "connect" ect. mais à part pour connecter des boutons d'IHM à des méthodes dans des SLOTS, je ne comprend pas du tout comment sa pourrait me servir.

    Donc en résumé : comment faire communiquer le thread créé par la classe Salle (avec un IHM graphique) avec les différents threads "Chauffage" et "Ventilation" ?

    Merci beaucoup de votre aide !!

  2. #2
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Par défaut
    Salut,

    Tu crées un slot personnalisé dans ta classe salle (qui a une IHM) et tu crées un signal dans ton thread. Avant de lancer ton thread tu utilises la methode connect pour relier les differents signaux et slots.
    Par la suit à chaque fois que tu feras un emit dans ton thread cela enverra les infos à ton IHM.

    Bon courage pour la suite.
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 18
    Par défaut
    Merci pour tout c'est exactement ce que je cherchais !

    J'ai essayé et tout marche impeccable !

    Thanks !!

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

Discussions similaires

  1. [QThread] Communication entre QThread
    Par 0inm3 dans le forum Multithreading
    Réponses: 14
    Dernier message: 07/05/2011, 16h42
  2. Communication entre processus
    Par markopolo dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/06/2003, 16h21
  3. Réponses: 5
    Dernier message: 25/03/2003, 19h43
  4. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05

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