2010-05-01 11 views
6

Wenn ich einen Thread erstellen, speichere ich es Handle in einer Liste. Nach einiger Zeit möchte ich prüfen, welche von ihnen noch existiert. Ich bin nicht auf der Suche nach einer anderen Art von Implementierung, ich möchte wissen, ob es einige gibt, wie man einen Thread von ihm behandeln?Überprüfen Sie, ob ein Thread von ihm existiert Handle

+0

Ein Thread existiert, bis Sie es anschließen. Möchten Sie überprüfen, welche noch laufen? –

+0

@Marcelo, Beitritt hat nichts damit zu tun. Ein Thread existiert, solange noch offene Handles vorhanden sind. Und selbst wenn sie alle geschlossen sind, wird der Thread weiterhin bestehen, wenn er noch nicht beendet wurde. –

+0

Danke Rob. Ich habe POSIX und Win32 verwirrt. –

Antwort

5

Wenn Sie nur daran interessiert sind, in denen solche noch laufen, sollte diese Arbeit:

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

So warte ich auf die Finalisierung des Threads, das ist nicht der Fall, tks sowieso. –

+4

Das zweite Argument von WaitForSingleObject ist ein Timeout. Wenn Sie 0 übergeben, wird nur der Wartezustand getestet und sofort zurückgegeben. –

Verwandte Themen