Synchronisation de beaucoup de processus avec les Event
Synchronisation de beaucoup de processus avec les Event - C - Programmation
MarshPosté le 08-06-2006 à 18:10:55
Bonjour
Je présente mon programme : il y a le thread principal, à un moment donné il créé un nouveau thread. Celui-ci entre dans un boucle ou il créé à chaque tour un nouveau thread du type PING, chacun chargé donc de faire un ping sur une machine différente. J'ai essayé de de faire une variable globale "HANDLER thread_end". Le thread principal, après avoir lancé le thread qui s'occupe de lancer à son tour la floppée de threads, entre dans une boucle en faisant un CreatEvent sur la variable thread_end puis entre en pause avec WaitForSingleObject. J'espérais que chaque thread de PING, une fois terminé, fasse chaqu'un à son tour un SetEvent sur thread_end. Avec un compteur dans la boucle du thread principal, il serait possible de compter combien de threads PING ont terminés et une fois le nombre total atteind le thread principal se termine. Malheureusement ça ne fonctionne pas les threads PING se terminent, certains sont comptés mais d'autres non donc le thread principal attend de nouveau évènements alors que tout le monde a terminé...
Une idée pour m'aider avec tous ces threads qui n'en font qu'à leur tête? Merci
Marsh Posté le 08-06-2006 à 18:10:55
Bonjour
Je présente mon programme : il y a le thread principal, à un moment donné il créé un nouveau thread. Celui-ci entre dans un boucle ou il créé à chaque tour un nouveau thread du type PING, chacun chargé donc de faire un ping sur une machine différente.
J'ai essayé de de faire une variable globale "HANDLER thread_end".
Le thread principal, après avoir lancé le thread qui s'occupe de lancer à son tour la floppée de threads, entre dans une boucle en faisant un CreatEvent sur la variable thread_end puis entre en pause avec WaitForSingleObject.
J'espérais que chaque thread de PING, une fois terminé, fasse chaqu'un à son tour un SetEvent sur thread_end. Avec un compteur dans la boucle du thread principal, il serait possible de compter combien de threads PING ont terminés et une fois le nombre total atteind le thread principal se termine. Malheureusement ça ne fonctionne pas les threads PING se terminent, certains sont comptés mais d'autres non donc le thread principal attend de nouveau évènements alors que tout le monde a terminé...
Une idée pour m'aider avec tous ces threads qui n'en font qu'à leur tête? Merci