读https://msdn.microsoft.com/zh-cn/library/windows/desktop/ms682655(v=vs.85).aspx
记录
event创建时,手动和自动set,手动set要手动setevent才可以用。
自动set在wait状态前全部singnaled,在线程release掉后. 占用时候为nosingnaled.
用 dwWaitResult = WaitForSingleObject(
ghWriteEvent, // event handle
INFINITE); // indefinite wait
来获取event,
返回值为0 则为得到event
调用根据系统APC机制。
记得最后用完,
CloseHandle(ghWriteEvent);
close掉。
一般为全局event。
HANDLE EVENT;
方式命名。
等待多个event为
// The handle for each thread is signaled when the thread is
// terminated.
dwWaitResult = WaitForMultipleObjects(
THREADCOUNT, // number of handles in array
ghThreads, // array of thread handles
TRUE, // wait until all are signaled
INFINITE);
最后发现EVENT其实和THREAD为同HANDLE.
我简单理解thread是event的抽象。
具体的function有
CreateEvent SetEvent OpenEvent PulseEvent ResetEvent