事件对象
事件对象也属于内核对象,包含一个使用计数一个用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值,另一个用于指明该事件处于已通知状态还是未通知状态的布尔值。
有两种不同类型的事件对象。一种是人工重置的事件,另一种是自动重置的事件。当人工重置的事件得到通知时,等待该事件的所有线程均变为可调度线程,且在一个线程得到该事件对象后并不会将该对象设置为非信号状态,也就是说人工重置的事件对象,除非显式得调用ResetEvent,否则始终处于有信号状态。
当一个自动重置的事件得到通知时,等待该事件的线程中只有一个线程变为可调度线程,同时操作系统将该事件对象设置为非信号状态,当所保护的代码执行完后,需要调用SetEvent设置将该事件对象为信号状态。
创建事件对象
CreateEvent 用来创建或打开一个命名的或无名的事件对象,对于它的其他解释,请自行百科,这里只简单描述它的两种常用用法!
HANDLE CreateEvent(
LPSECURITY_ATTRIBUTES lpEventAttributes,