19-线程同步:事件对象
线程同步:事件对象
事件
事件对象也属于内核对象,它包含以下三个成员:
● 使用计数;
● 用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值;
● 用于指明该事件处于已通知状态还是未通知状态的布尔值。
1.创建事件CreateEvent函数
将一个句柄变为一个事件的标志,设置该事件的初始信号。
参数:
HANDLE CreateEvent( |
使用:
hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); |
2.设置事件信号为有信号SetEvent函数
传入一个事件句柄,将该事件设置为有信号(可用)。
参数:事件句柄
3.设置事件信号为无信号ResetEvent函数
传入一个事件句柄,将该事件设置为无信号(不可用)。
参数:事件句柄
4.请求事件对象函数WaitForSingleObject
线程通过调用 WaitForSingleObject 函数请求事件对象,阻塞等待事件,直到有信号。
案例
|
发布于