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
| struct st_threadParams
{
HANDLE hEvent;
int tempsAttente;
};
void A::lancerthread()
{
st_threadParams params;
params.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
params.tempsAttente=5000;
_beginthreadex(NULL, 0, &A::ThreadFunc, ¶ms, 0, NULL);
WaitForSingleObject(params.hEvent);
}
//Méthode déclarée static
UINT __stdcall A::ThreadFunc(LPVOID pParam)
{
int millsec = 0;
//Lecture des paramètres
{
st_threadParams *pStParam = static_cast< st_threadParams * >(pParam);
pParam = NULL;
millsec = pStParams->tempsAttente;
SetEvent(pStParams->hEvent);
}
//Exécution du thread
Sleep(millsec);//attente de 5 secondes
AfxMessageBox("Hello");
//_endthreadex(0); inutile puisque le return suit
return 0;
} |
Partager