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

Windows Discussion :

WaitForMultipleObjects


Sujet :

Windows

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 28
    Points : 20
    Points
    20
    Par défaut WaitForMultipleObjects
    Bonjour,

    J'utilise la fonction WaitForMultipleObjects pour attendre l'arrivée de plusieurs événements sur plusieurs threads.

    result = WaitForMultipleObjects(SIZE_TABLEAU, tableauHandles, FALSE, INFINITE);

    Dans mon programme, il se peut que plusieurs événements soient notifiés en "même" temps.

    Comment savoir ceux qui le sont?

    D'apres la msdn, je reçois le plus petit index dans le tableau de l'événement signalé. Mais comment savoir quels sont les autres événements signalés???

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Selon moi, tu resettes manuellement l'event que tu as trouvé, puis tu retournes au WaitForMultipleObjects(). Si tes événements ne sont pas en auto-reset, tu es sûr qu'ils n'ont pas été resettés. S'ils sont en auto-reset, j'ignore ce qui se passera...

    Sinon, tu peux aussi, après le WaitForMultipleObjects(), tester chaque event avec un WaitForSingleObject(Timeout zéro), mais le même problème de reset risque (ou pas) de se produire...

    Enfin si tu as des événements à reset manuel, il ne doit y avoir aucun risque...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Bonjour,
    Merci pour ta réponse.

    En effet mes événements ne sont pas en auto-reset. Donc oui c'est à moi de le faire.
    Donc la méthode que tu m'indique d'utiliser marche.


  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 667
    Points
    10 667
    Billets dans le blog
    3
    Par défaut Re: WaitForMultipleObjects
    Citation Envoyé par el3gans
    Dans mon programme, il se peut que plusieurs événements soient notifiés en "même" temps.
    A priori c'est extrêmement rare car le premier evenement à basculer en état signalé va débloquer ton Wait. Donc tu peux partir sur le principe qu'un seul event a la fois est signalé, le traiter et le reseter comme le dit Medinoc. Si 2 event le sont en même temps, le Wait suivant sera débloqué immédiatement sur le 2° event.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Ok, merci beaucoup.
    C'est vrai que je commencais a me poser des question, mais en fait tu as raison, un seul evenement à la fois.

    Merci encore


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

Discussions similaires

  1. thread et WaitForMultipleObjects
    Par calou_33 dans le forum Langage
    Réponses: 10
    Dernier message: 20/10/2009, 00h11
  2. Pb avec WaitForMultipleObjects experts!
    Par robux dans le forum Windows
    Réponses: 11
    Dernier message: 06/02/2009, 23h24
  3. WaitForMultipleObjects version Boost.Threads
    Par raphael_kindt dans le forum Boost
    Réponses: 1
    Dernier message: 17/09/2008, 15h35
  4. Réponses: 10
    Dernier message: 06/07/2007, 10h27
  5. Serveur C++ avec WaitForMultipleObjects
    Par samball dans le forum C++
    Réponses: 3
    Dernier message: 29/03/2007, 12h01

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