User napisał(a):
> > widzę tu dwa potencjalnie gorące miejsca.
> >
> > po pierwsze, nie wiem po co wołasz ExitThread(), samo zakończenie funkcji
> > powinno wystarczyć.
> >
> > po drugie, co się stanie jeśli wątek główny zdąży wykonać CloseHandle()
> > zanim wątek się zakończy? synchronizujesz to jakoś?
> >
> > Wiktor Zychla
>
> CloseHandle() wywołuję po zakończeniu wątku.
> Z funkcji wątku usunąłem wywołanie ExitThread().
> Niestety bez efektu - nadal pamięć wycieka :-(
Witam
//-------------------------------------------
DWORD WINAPI ThreadProc(void* Args)
{
Sleep(2000);
return 0;
}
int main()
{
DWORD tid = 0;
HANDLE hthread = CreateThread(0, 0, ThreadProc, 0, 0, &tid);
WaitForSingleObject(hthread, INFINITE);
CloseHandle(hthread);
return 0;
}
//-------------------------------
Spróbuj tego. Tak na marginesie jaki cudem twój okd ruszył na 98?
skoro w ostatnim parametrze 'CreatThread' masz 0?
MSDN:
"lpThreadId
[out] Pointer to a variable that receives the thread identifier. If
this parameter is NULL, the thread identifier is not returned.
Windows Me/98/95: This parameter may not be NULL."
Pozdrawiam
Received on Fri Oct 27 13:30:15 2006
To archiwum zostało wygenerowane przez hypermail 2.1.8 : Fri 27 Oct 2006 - 13:42:04 MET DST