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.
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 ?
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...
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