CEvent::ResetEvent 是 MFC 中 CEvent 类的一个公共方法,用于将事件对象的状态重置为非触发状态。

函数原型如下:
BOOL ResetEvent() throw();

这个方法没有参数,它返回一个 BOOL 值,表示操作是否成功。如果成功,返回非零值;否则返回零。

在调用 ResetEvent 后,事件对象会被重置为非触发状态,即它的信号状态被清除,等待它的线程将再次被阻塞,直到事件再次被触发。

下面是一个简单的示例:
#include <afx.h>

int main() {
    // 创建一个事件对象
    CEvent myEvent(FALSE, TRUE);

    // 将事件置于非触发状态
    myEvent.ResetEvent();

    // 检查事件状态
    if (myEvent.Lock(0)) {
        // 事件已经触发
        TRACE(_T("Event is signaled.\n"));
        myEvent.Unlock();
    }
    else {
        // 事件未触发
        TRACE(_T("Event is not signaled.\n"));
    }

    return 0;
}

在这个示例中,首先创建了一个 CEvent 对象 myEvent,并将其置于非触发状态。然后通过 Lock 方法来检查事件的状态,如果事件已经被触发,就输出一条消息。由于事件被重置为非触发状态,所以输出的消息应该是 "Event is not signaled."。


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