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 :

Envoyer un signal à un thread spécifique quand plusieurs autres sont connectés


Sujet :

Multithreading

  1. #1
    Membre régulier
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2008
    Messages : 138
    Points : 70
    Points
    70
    Par défaut Envoyer un signal à un thread spécifique quand plusieurs autres sont connectés
    Bonjour,

    Je travaille actuellement sur une application multi-thread dans laquelle j'ai un thread listener auprès duquel plusieurs threads doivent s'inscrire ( c'est à dire que le thread listener doit avoir une liste à jour des id de ces threads abonnés ).

    Pour le moment, les threads s'inscrivent indépendamment au listener en lui envoyant un signal. Je voudrais que le listener leur renvoie une confirmation. Au début, je pensais leur renvoyer un signal, sauf qu'il faut que ce signal ne soit envoyé qu'au thread qui vient de s'inscrire.

    Comment envoyer un signal à un thread spécifique ( dont je connais l'id ) alors que d'autres threads sont connectés à ce signal ?
    Existe-t-il une autre manière ? Un équivalent de QApplication::postEvent de type QThread::postSignal ...

    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2008
    Messages : 138
    Points : 70
    Points
    70
    Par défaut
    Une réponse satisfaisante sur le forum de Qt qui consiste à ce que lorsqu'un objet a reçu une première fois sa confirmation, il se désabonne de ce signal.

    Ce n'est néanmoins pas totalement satisfaisant.

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 218 582
    Points
    218 582
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Pour chaque message que vous envoyez, vous devez aussi envoyer l'ID du thread qui doit le recevoir. Si tout les threads reçoivent le message, il suffit de simplement comparer l'ID du thread courant avec celui contenu dans le message.

    Sinon, on peut aussi penser à utiliser un QSignalMapper.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Salut.

    Comment envoyer un signal à un thread spécifique ( dont je connais l'id ) alors que d'autres threads sont connectés à ce signal
    Qu'entendu par envoyer un signal à un thread? tu parle de QThread? de QObject s’exécutant dans un QThread? autre

  5. #5
    Membre régulier
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2008
    Messages : 138
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    La solution de LittleWhite est celle que j'utilise actuellement.

    Qu'entendu par envoyer un signal à un thread? tu parle de QThread? de QObject s’exécutant dans un QThread? autre
    Pardon pour l'imprécision. L'architecture a changé depuis mon premier post. J'entends envoyer un signal depuis un QOBject o1 executé dans un QThread A, à un autre QObject o2 executé dans un QThread B. Sachant que d'autres objets sont, tout comme o2, connectés à ce signal.

  6. #6
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Ok
    Donc le postevent est une solution car l'event va passer par les eventloop de tes thread et tu peux cibler l'objet qui le reçois.
    Le QObject reçois les event dans la méthode
    http://qt-project.org/doc/qt-4.8/qobject.html#event

Discussions similaires

  1. Envoyer un signal à un programme
    Par vbcasimir dans le forum Administration système
    Réponses: 4
    Dernier message: 23/05/2006, 13h46
  2. pb enregistrement quand plusieurs choix
    Par fscli dans le forum Access
    Réponses: 2
    Dernier message: 23/05/2006, 09h01
  3. [POSIX][SIGNAL] envoyer un signal a thread avec sigqueue
    Par Mokhtar BEN MESSAOUD dans le forum POSIX
    Réponses: 3
    Dernier message: 09/02/2006, 18h07
  4. [Thread]Comment créer plusieurs thread à la demande??
    Par Devil666 dans le forum Concurrence et multi-thread
    Réponses: 8
    Dernier message: 14/09/2005, 13h29
  5. [Struts]2 Threads identiques quand j'appelle une action
    Par seb55555 dans le forum Struts 1
    Réponses: 4
    Dernier message: 03/05/2005, 16h49

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