Envoie à des threads

Signaler
Messages postés
68
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
14 mars 2012
-
Messages postés
8
Date d'inscription
vendredi 6 septembre 2002
Statut
Membre
Dernière intervention
26 mars 2008
-
Bonjour à tous.

Je m'adresse à vous car j'ai un problème avec des threads et plus précisément avec le passage d'informations a partir d'un thread vers plusieur autres. Je travaille sous Code::Blocks avec les APIs Windows et je tiens à  préciser que je débute à peine en ce qui concerne la programmation multi-thread et que je n'ai vu que la théorie jusqu'a présent je ne connait donc aucune fonctions.
La situation est la suivante, mon programme principal lance un thread, qui a son tour va lancer plusieur autre threads qui auront une durée de vie relativmen tcourte. à la création de ces thread j'ai besoin de leur envoyer plusieur information comme son propre HANDLE ainsi que des entiers. Ces threads sont générés séquentiellement par une boucle et doivent recevoir ces information juste après leur création, je me doute qu'il faudras qu'il soit en attente jusqu'a qu'il les recoivent.

    Si quelqu'un pouvait m'expliquer assez précisément comment faire ceci je l'en remercie d'avance.

Merci.

5 réponses

Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
Tu peux utiliser PostThreadMessage() par exemple, et au début de chaque thread tu mettras une boucle d'attente de message.
Messages postés
68
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
14 mars 2012

Bonjour.

Je vois vois ce qu'il faut faire, dans ma boucle de création de threads je fait un PostThreadMessage() juste après la création d'un thread, si j'ai bien compris dans PostThreadMessage() les threads sont identifés par la variable de type DWORD que l'on à utiliser lors de sa créaction. Il est possible que je me trompe car je n'arrive pas du tout à envoyer de messages.
    Serait-il possible d'avoir un exemple pour l'envoie des message et la boucle d'attente de message ?

Merci d'avance pour votre aide.
Messages postés
68
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
14 mars 2012

Bonjour.

C'est bon j'ai trouver un autre moyen pour passer des information au threads à leur créations.

Merci pour ton aide.
Messages postés
68
Date d'inscription
vendredi 23 novembre 2007
Statut
Membre
Dernière intervention
14 mars 2012

Bonsoir.

Parcontre j'ai un autre soucis dans le même style je veux envoyer une structure à un thread je procède comme cela :
hthread[j] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Fonction,&structure,0,&dwid);
Pour récupérer la structure dans le thread je procède ainsi :
long WINAPI Fonction (structure* mastructure)
{
    afficher(mastructure -> ..);.
}
Lorsque je veux lire les champs de ma structure ils sont vide, je doit louper une étape quelque part, si quelqu'un pourvais m'aider...

Merci.
Messages postés
8
Date d'inscription
vendredi 6 septembre 2002
Statut
Membre
Dernière intervention
26 mars 2008

perso, je créé un pointeur de structure, j'alloue la mémoire avec malloc, puis je passe le pointeur de structure au thread, la, aucuns problemes.
Puis dans le trhread, je recréé un pointeur de structure que je remplis ....

DWORD WINAPI thrd (LPVOID lParametre) <- déclaration du thread

dans le thread:

ParamThread *parametres;
parametres=(ParamThread*)lParametre;