在退出关联的线程之前关闭线程句柄

时间:2011-07-15 02:54:10

标签: c++ c windows-ce

这是我在我的代码中尝试做的事情: 我创建一个事件,创建一个线程。如果主线程中出现故障,我会设置事件以指示关于故障的关联线程,并指示它正常退出关联线程。

我的问题是,在设置事件后关闭线程句柄是否安全,而关联的线程仍在运行(尝试清理并退出)?尝试立即关闭线程句柄而不是等待关联线程返回的意图是避免在主线程上等待其他人等待相关线程返回。

请建议。感谢。

2 个答案:

答案 0 :(得分:3)

是的,这很安全。来自CreateThread documentation

  

线程对象保留在系统中,直到线程终止并且通过调用CloseHandle关闭了它的所有句柄。

当然,如果你关闭了线程的句柄,那么你就不能再通过拨打WaitForSingleObject / WaitForMultipleObjects来等待它了。

答案 1 :(得分:0)

即使在你的Thread函数中关闭线程句柄也不是一件坏事,但事实是你将无法使用该线程句柄进行任何通信。其他选项是无论你在哪里发信号使用waitforsingleobject并等待线程句柄。一旦它返回,你可以关闭手柄。

相关问题