【发布时间】:2012-03-06 14:31:25
【问题描述】:
举个例子:-
我使用CreateThread Api 创建了线程pThread,它将执行一些任务,比如vSampleTask
我怎么知道 pThread 已经完成了它的任务?
谢谢
【问题讨论】:
标签: windows winapi operating-system
举个例子:-
我使用CreateThread Api 创建了线程pThread,它将执行一些任务,比如vSampleTask
我怎么知道 pThread 已经完成了它的任务?
谢谢
【问题讨论】:
标签: windows winapi operating-system
您可以使用WaitForSingleObject 或其他等待函数之一等待线程句柄。例如,您可以使用MsgWaitForMultipleObjects 让您的等待被输入消息打断。当线程执行完成时,线程句柄会发出信号。
作为替代方法,您可以通过调用GetExitCodeThread 来检查线程的状态。如果线程仍然忙,这将返回FALSE,如果它已完成,则返回TRUE。如果线程已经完成,那么也会返回退出代码。
如果一个线程需要等待另一个线程完成,那么您应该使用等待函数而不是调用GetExitCodeThread 的繁忙轮询循环。繁忙的循环和轮询只会消耗不必要的 CPU(和电源)。等待函数允许等待线程空闲。
【讨论】:
你可以通过GetExitCodeThread询问线程的状态。
【讨论】:
break。
ExitThread 传递退出代码。或return 线程过程的退出代码。 ExitThread 在线程过程调用其他过程时很有用。 A.H. 与break 的类比非常好。