在 MFC(Microsoft Foundation Classes)框架中,CEvent 类是用于同步对象的一个类,通常用于线程间的同步。然而,CEvent 类并不提供直接的公共构造函数 CEvent::CEvent。相反,CEvent 的对象通常通过创建或打开系统事件对象来初始化。

以下是 CEvent 类的一般用法,包括构造函数:
CEvent::CEvent(BOOL bInitiallyOwn = FALSE, BOOL bManualReset = FALSE, LPCTSTR lpszName = NULL, LPSECURITY_ATTRIBUTES lpsaAttribute = NULL);

构造函数的参数说明:

  •  bInitiallyOwn:指定事件的初始状态。如果为 TRUE,表示创建事件时为有信号状态;如果为 FALSE,表示创建事件时为无信号状态。

  •  bManualReset:指定事件是否为手动复位。如果为 TRUE,表示事件是手动复位的,需要手动调用 ResetEvent 来将其复位;如果为 FALSE,表示事件是自动复位的,当有一个等待线程满足事件条件后,系统自动将其复位。

  •  lpszName:事件的名称,用于命名系统事件对象。

  •  lpsaAttribute:一个指向 SECURITY_ATTRIBUTES 结构的指针,用于指定事件的安全属性。可以为 NULL,表示使用默认的安全属性。


使用示例:
CEvent myEvent(FALSE, TRUE, _T("MyEvent"));

上述示例创建了一个自动复位的事件对象,初始状态为无信号状态,使用了名称 "MyEvent"。这个事件对象可以用于线程间的同步。




转载请注明出处:http://www.zyzy.cn/article/detail/17687/MFC/CEvent