2012-02-15 87 views

回答

3

你可以得到GetExitCodeThread索要線程的狀態。

+0

非常感謝。我明白這一點。我還有一個疑問,即完成任務後,使用「GetExitCodeThread」檢查線程是否完成其任務。我是否需要調用ExitThread Api來結束線程或自動完成? – Abhineet 2012-02-15 08:54:46

+0

在您的Google搜索欄中輸入「GetExitCodeThread」,點擊第一個非廣告鏈接並從MS本身查找規範。在那裏你會找到更完整的答案。 – 2012-02-15 09:00:46

+0

謝謝。 :) – Abhineet 2012-02-15 09:01:00

4

您可以使用WaitForSingleObject或其他等待函數之一等待線程句柄。例如,您可以使用MsgWaitForMultipleObjects來允許您的等待被輸入消息中斷。當線程執行完成時,線程句柄會變成信號。

作爲一種替代方法,您可以通過調用GetExitCodeThread來檢查線程的狀態。如果線程仍然很忙,這將返回FALSE,如果它已完成,則返回TRUE。如果線程已經完成,那麼退出代碼也將被返回。

如果一個線程需要等待另一個線程完成,那麼您應該使用等待功能,而不是使用繁忙的輪詢循環調用GetExitCodeThread。繁忙的循環和輪詢只會消耗不必要的CPU數量(和功耗)。等待函數允許等待線程變爲空閒狀態。

+1

+1爲非投票部分。 – 2012-02-15 09:02:31

+0

感謝大衛的迴應:) – Abhineet 2012-02-15 09:06:38

相關問題