如何解决调用SetEvent之后调用CloseHandle
| 我的应用程序中正在运行线程。在线程内部,我正在等待自动重置事件退出。我要确保在使用事件后关闭事件的句柄。我有两个选择。 呼叫SetEvent
后立即调用事件的CloseHandle
WaitForSingleObject
行后调用CloseHandle
请建议我哪种方法是正确的。
解决方法
在
SetEvent
之后调用CloseHandle
对我来说没有意义。您(如果需要)应仅在WaitForSingleObject
之后呼叫CloseHandle
。
, 所有线程使用完毕后,关闭手柄。在对我来说,WaitForSingleObject听起来很合理之后(因为如果成功,则SetEvent必须已完成)。
或者-给每个线程自己的句柄副本(例如,通过DuplicateHandle),并在完成后关闭每个副本。这更容易出错,并且需要更少的代码分析。
, 当您确定事件已完成工作并且不再需要时,请关闭事件句柄。在这种情况下,就是在检测到它已设置之后。因此,WaitForSingleObject
解锁后,请关闭事件句柄。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。