1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
randomize();
for(int i=0;i<n_fils;i++){//nombre de fils à crèer
d_param=anx_liste(d_param,cad,0);//Anexer noeuds à une liste dinámique
//Trouver le dernier noeud
dernier=d_param;
while(dernier->suivant!=NULL){
dernier=dernier->suivant;
}
//Créer le fil avec le dernier noeud de la liste comme parámetre
dernier->id_fil=CreateThread(0,0,function,dernier,CREATE_SUSPENDED,NULL);
if(dernier->id_fil==NULL){
ShowMessage("Erreur");
d_param=elimliste(d_param);
Application->Terminate();
}
//Demarrer le fil
ResumeThread(dernier->id_fil);
}
//Attendre tous les fils
liste aux=d_param;
while(aux!=NULL){
WaitForSingleObject(aux->id_fil,INFINITE);
aux=aux->suivant;
}
/***** function du fil *******/
DWORD WINAPI function(void *x){
liste p=(liste)x;
double sum=0;
p->resp=random(100);
ExitThread(0);
return NULL;
}
/****************/ |
Partager