一些主要函数的介绍
//Creates or opens a named or unnamed event object.
//创建或打开一个事件
HANDLE CreateEvent(
LPSECURITY_ATTRIBUTES lpEventAttributes, //事件的安全属性
BOOL bManualReset, //手工重置事件(TRUE),或者自动重置事件(FALUSE)
BOOL bInitialState, //将事件初始化触发状态(TRUE),或未触发状态(FALUSE)
LPTSTR lpName //事件名
);
//Sets the specified event object to the signaled state.
//把事件变成触发状态
BOOL WINAPI SetEvent(
__in HANDLE hEvent
);
//Sets the specified event object to the nonsignaled state.
//把事件变成未触发状态
BOOL WINAPI ResetEvent(
__in HANDLE hEvent
);
//Closes an open object handle.
//关闭内核对象
BOOL WINAPI CloseHandle(
_In_ HANDLE hObject
);
//等待函数
//等待函数使一个线程自愿进入等待状态,直到指定的内核对象被触发 或者超时指定的等待时间为止。
//Waits until the specified object is in the signaled state or the time-out interval elapses.
//To enter an alertable wait state, use the WaitForSingleObjectEx function. To wait for multiple objects, use the WaitForMultipleObjects.
DWORD WINAPI WaitForSingleObject(
__in HANDLE hHandle, //标识要等待的内核对象
__in DWORD dwMilliseconds //等待对象被触发的时间
);
DWORD WINAPI WaitForMultipleObjects(
__in DWORD nCount,
__in const HANDLE* lpHandles,
__in BOOL bWaitAll,
__in DWORD dwMilliseconds
);
//参数说明:
//nCount :希望函数检查的内核对象的数量
//bWaitAll:选择等待的方式,一种(设为FALUSE)是让线程进入等待的状态直到指定内核对象中的一个被触发为止,另一种(设为TRUE)是让线程进入等待的状态直到指定内核对象中的全部被触发为止