|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
[win32] CloseHandle su un thread
Qual è il metodo migliore per eseguire la CloseHandle su un thread terminato?
Mi spiego meglio, ho una classe che lancia uno o più thread, chiaramente non voglio che questo thread sia bloccante quindi non posso scrivere qualcosa come: Codice:
thread.Start();
...
Thread::Start()
{
hThread = CreateThread(...);
WaitForSingleObject(...);
CloseHandle(hThread);
}
L'handle rimane quindi aperto fino a che la l'oggetto thread non viene distrutto. C'è modo di riuscire a chiuderlo prima? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
La documentazione dice:
CloseHandle invalidates the specified object handle, decrements the object's handle count, and performs object retention checks. After the last handle to an object is closed, the object is removed from the system.Quindi sarei portato a pensare che se chiudi subito l'handle appena dopo aver creato/avviato il thread non ci sono problemi.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) Ultima modifica di andbin : 12-09-2007 alle 15:37. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Io generalmente, in questi casi chiudo l'handle subito prima del return della callback, ma mi è sempre rimasto il dubbio che non fosse propriamente corretto, in quanto il thread termina solo dopo il return. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:47.




















