[déplacé Bar -> CPP] thread en c [Résolu]

Signaler
Messages postés
123
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
18 juin 2012
-
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
-
bonjour ,
qui peut me faire un tout petit exemple d'utilisation des thread pour demarer dans le domain.
meme sous dos.
merci a plus.

5 réponses

Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Salut

Voila un petit exemple de code:

DWORD WINAPI MA_FONCTION(LPVOID lParam)
{
    //traitement dans ton thread

}

int main()
{
   HANDLE hTread[4];
   for(int i=0;i<4;i++)
   {
        hTread[i]=CreateThread(NULL,0,MA_FONCTION,0,0);
        if(hTread[i]==0){
             MessageBox(NULL,"Erreur",NULL,MB_OK|MB_ICONWARNING);
             return 0;
         }
     }
     //On attend la fin des 4 threads
     WaitForMultipleObjects(4,hTread,TRUE,INFINITE);

     //fermeture des threads
     for(i=0;i<4;i++)
         CloseHandle(hTread[i]);
}

A+

____________________________________________________________________________
Mon site internet :  http://ImAnalyse.free.fr
http://ImAnalyse.free.fr
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Salut
Oui effectivement, j'ai oublié un paramètre pour la fonction createthread.

Dans cet petit exemple, tout les thread exécute la même fonction mais ca c'est toi qui voit.
Tu peux faire quelque chose comme ca:
hTread[i]=CreateThread(NULL,0,MA_FONCTION_1,0,0,&threadID);
hTread[i]=CreateThread(NULL,0,MA_FONCTION_2,0,0,&threadID);
hTread[i]=CreateThread(NULL,0,MA_FONCTION_3,0,0,&threadID);
hTread[i]=CreateThread(NULL,0,MA_FONCTION_4,0,0,&threadID);

La chaque thread exécuterons une fonction différente.
A+
____________________________________________________________________________
Mon site internet :  http://ImAnalyse.free.fr
http://ImAnalyse.free.fr
Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011
1
Merci, ça en aide plus d'un

Cordialement, uaip.
Messages postés
123
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
18 juin 2012

salut,
meci beaucoup pistol_pete mais ya un problem avec hTread[i]=CreateThread(NULL,0,MA_FONCTION,0,0);
je suis sous dev et le compilateur me dit "too few arguments to function `CreateThread' "
++
Messages postés
123
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
18 juin 2012

enfaite tu a juste oublier un argument,
:

DWORD WINAPI MA_FONCTION(LPVOID lParam)
{
    //
 }




int main()
{
    int i;
    DWORD threadID;
   HANDLE hTread[4];
   for(i=0;i<4;i++)
   {
        hTread[i]=CreateThread(NULL,0,MA_FONCTION,0,0,&threadID);
        if(hTread[i]==0){
             MessageBox(NULL,"Erreur",NULL,MB_OK|MB_ICONWARNING);
             return 0;
         }
     }
     //On attend la fin des 4 threads
     WaitForMultipleObjects(4,hTread,TRUE,INFINITE);


     //fermeture des threads
     for(i=0;i<4;i++)
         CloseHandle(hTread[i]);
}

je ne compren pas un truc se que j'ai lu sur les thread c'est qu'on paut executer plusieur tache en meme temp alors que la je ne voit pas comment faire.
++