gpt4 book ai didi

c++ - 谁负责为线程句柄调用 CloseHandle()

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:09 27 4
gpt4 key购买 nike

我有一个 Class 类,其中有一个成员属性 HANDLE handle 到一个线程(我们可以假设它被设置为 NULL 在那个点)。在某些时候,Class 中的一个方法分派(dispatch)它自己的方法之一 Class::threaded()(使用类本身外部的另一个函数,但它不在这里真的很重要)与 CreateThread()。然后,调用线程可能会继续执行 Class 之外的其他功能。

由于必须为从 CreateThread() 返回的 HANDLE 调用 CloseHandle() ,我想知道是否从 调用它Class::threaded() 在它返回之前将是一个不错的解决方案。

最佳答案

处理线程的两种基本方法。通常当线程终止时您会感兴趣,您需要保留句柄以便您可以找到。当然,您会在检测到终止后将其关闭。或者你不关心,即发即弃的风格,或者有额外的同步对象来表示线程函数完成和/或你要求它退出。在这种情况下,您只需在启动后立即关闭 handle 即可。

请记住,不需要保持句柄打开以保持线程运行,以防这是混淆的根源。

关于c++ - 谁负责为线程句柄调用 CloseHandle(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20254197/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com