2010-05-01 67 views
6

當我創建一個線程時,我將它保存在列表中。 過了一段時間我想檢查他們哪些還存在。 我不是在尋找其他類型的實現,我想知道是否有一些如何通過它來處理線程?檢查線程是否存在句柄

+0

線程一直存在,直到你加入。你想檢查哪些仍在運行? – 2010-05-01 00:51:09

+0

@Marcelo,加入與它無關。只要仍然有句柄處於打開狀態,就會存在線程。即使它們全部關閉,如果尚未終止,線程仍然存在。 – 2010-05-01 20:15:08

+0

謝謝Rob。我混淆了POSIX和Win32。 – 2010-05-01 21:57:15

回答

5

如果你只是感興趣,哪些仍在運行,這應該工作:

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

這樣我就等待線程終結,不是這樣,反正tks。 – 2010-05-01 01:10:34

+4

WaitForSingleObject的第二個參數是超時。通過傳入0就可以測試等待狀態並立即返回。 – 2010-05-01 03:13:50