Thread,pb de debutant

ssss9999 Messages postés 2 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 2 avril 2006 - 31 mars 2006 à 14:46
ssss9999 Messages postés 2 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 2 avril 2006 - 2 avril 2006 à 21:38
Bonjour, je suis debutant sur les thread et je n'y connait rien et j'ai le probleme suivant:
creation de 2 thread A et B .le thread A cree 2 autres thread C et D qu'il attendra avant de termine
fin
je ne sais pas comment implementer la solution en Cpp

5 réponses

SebDeBib Messages postés 2 Date d'inscription jeudi 1 décembre 2005 Statut Membre Dernière intervention 11 avril 2006
31 mars 2006 à 19:50
La méthode AfxBeginThread (MFC) permet de démarrer un WorkerThread, c'est-à-dire un thread qui exécute une tâche dans son coin - en multitâche, bien sûr - et qui se termine tout seul quand la tâche est finie. Vois l'aide en ligne pour les paramètres... Pour générer un thread Windows, qui tourne dans sa propre fenêtre, alors il faut créer une instance de CWinThread... C'est plus lourd à gérer mais ça se fait... Là encore, l'aide en ligne de VC++ propose un exemple de création de ce type de classe... Après, une fois qu'il est démarré, ça se gère comme ton A...
Par définition, il ne faut surtout pas arrêter A avant C et D, sinon, tu vas tuer le père avant les fils, et ça, il faut pas... Sinon, quand ton thread va s'arrêter, boum !
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
1 avril 2006 à 00:24
Tien voici un petit exemple de thread

unsigned _thread1 (LPVOID param)
{
int i= NULL;

while(i < 10)
{
i++;
}

return 0;
}

puis dans ta fonction principal ou WM_CREATE (ou alors ailleur en autant qu'il ne soit pas executé en boucle constante comme dans un while ou WM_PAINT)
HANDLE thread1;

thread1 = CreateThread(0, 0xFF, (LPTHREAD_START_ROUTINE)_thread1, 0, 0, 0);

et un peut plus loin
CloseHandle(thread1);

Voila ça aura comme effet de fair rouler la fonction _thread1 tout en fesant continuer le programme.

Tu peut aller voir sur MSDN CreateThread pour plus de renseignement.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
1 avril 2006 à 00:24
En passent, ceci est en API pas en MFC

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
bayeto Messages postés 224 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 18 octobre 2010
1 avril 2006 à 01:28
Je mettrai un WaitForSingleObject(thread1,INFINITE); avant le CloseHandle pour être sûr que le père ne se termine pas avant le fils.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ssss9999 Messages postés 2 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 2 avril 2006
2 avril 2006 à 21:38
j'ai compris le pricipe du pere et le fils
le pere doit attendre la fin des threads fils qu'il a cree pour teminer
mon probleme se reside plus dans:
1-Creation du thread
2-Affectation de ses parametres(choix des valeurs)
3-Terminer le thread
dans borland C++ 5.0
Merci
0
Rejoignez-nous