事件对象主要用于线程间通信,它是一个内核对象,因此可以跨进程使用。它包含三个成员:
nUsageCount(使用计数)
bSignaled(是否受信)
bManualReset(是否人工重置):自动重置的事件对象受信后,Windows仅允许一个等待在该事件上的线程变成可调度状态;人工重置的事件对象受信后,所有等待在该事件上的线程都变成可调度状态。
事件对象建立后,可以通过SetEvent和ResetEvent函数来设置它的受信/非受信状态。当在自动重置类型的事件对象上等待的函数(如WaitForSingleObject)返回时,Windows会自动重置事件对象为非受信状态,而无需调用ResetEvent函数。