2010-05-01 13 views
6

Quando creo un thread, lo memorizzo in un elenco. Dopo un po 'voglio verificare quali di essi esistono ancora. Non sto cercando un altro tipo di implementazione, voglio sapere se c'è qualche modo per ottenere un thread da gestire?Controlla se esiste un thread maneggiato

+0

Un filo esiste fino a quando non farne parte. Vuoi verificare quali sono ancora in esecuzione? –

+0

@Marcelo, l'adesione non ha nulla a che fare con questo. Un thread esiste finché ci sono ancora maniglie aperte ad esso. E anche se sono tutti chiusi, il thread continuerà a esistere se non è ancora terminato. –

+0

Grazie Rob. Ho confuso POSIX e Win32. –

risposta

5

Se siete solo interessati a quelli che sono ancora in esecuzione, questo dovrebbe funzionare:

if WaitForSingleObject(ThreadHandle, 0) = WAIT_OBJECT_0 then 
    // Thread is still running 
+0

In questo modo aspetterò la finalizzazione del thread, non è il caso, tks comunque. –

+4

Il secondo argomento di WaitForSingleObject è un timeout. Passando 0 in esso test appena lo stato di attesa e immediatamente ritorno. –

Problemi correlati