我的应用程序中有一个线程正在运行。在线程内,我正在等待自动重置事件退出。我想确保在使用后关闭事件句柄。我有两个选择。
- 调用
SetEvent
后立即调用事件的CloseHandle
- 在
WaitForSingleObject
行之后调用CloseHandle
请建议我哪种方法是正确的。
最佳答案
当所有线程都使用完后关闭句柄。在 WaitForSingleObject 听起来对我来说很合理(因为如果成功,SetEvent 必须已经完成)。
或者 - 为每个线程提供自己的句柄拷贝(例如通过 DuplicateHandle)并让每个线程在完成时关闭它们的拷贝。这更不容易出错,并且需要对代码进行更少的分析。
关于c++ - 调用 SetEvent 后调用 CloseHandle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6452580/