事件对象Event的使用
最近使用到Event,做一下总结。
1、对象的创建:
创建了一个匿名的初始状态为“无信号”状态的Event。
因为我们在初始创建Event时将信号状态设为FALSE,此后一直没有变化,所以在_Thread_Proc线程函数中WaitForSingleObject一直在等待1000ms后返回WAIT_TIMEOUT,使得文件的保存操作得以调用。
当程序退出时,CConfigFileMgr对象需要析构,则调用SetEvent将信号设置为有状态,然后紧接着让m_hThread对应的线程进入等待,这时_Thread_Proc又检测到m_hEvent有信号,返回WAIT_OBJECT_0。使得死循环跳出,然后用_endthreadex结束线程。
最终关闭释放所有HANDLE,整个程序结束。可以看出,_Thread_Proc函数实际上起到了一个定时器的效果。