词条 | ResetEvent |
释义 | ResetEvent 这个函数把指定的事件对象设置为无信号状态。 BOOL ResetEvent( HANDLE hEvent ); 参数说明: hEvent [in] 指向事件对象的句柄.由 CreateEvent or OpenEvent 函数返回。 这个句柄需要拥有EVENT_MODIFY_STATE 访问权限. 函数成功,返回非0值,否则返回0值,可以调用GetLastError得到错误的详细信息。 Remarks 一个事件对象一直都保持在无信号状态,直到显式调用 SetEvent or PulseEvent 函数把它设置到有信号状态。 这些无信号的事件对象会阻塞任何在内部调用wait函数的线程。 这个函数用于手动重置的事件对象。手动重置的对象在线程释放后必须手动置为无信号状态。 自动重置的事件对象在一个等待它成功的线程释放后会自动变为无信号状态。 重置一个无信号的事件对象没有任何效果。 示例: //前面我们先申请一个CEvent对象 ... CEvent m_Event(FASLE , FALSE) ; ... //第一个线程 DWORD WINAPI EventThreadFirst(LPVOID pParam) { for(int i(0) ; i != 5 ; i++) { WaitForSingleObject(m_Event.m_hObject , INFINITE) ; cout << i*11+6 <<endl ; } return 0 ; } //第二个线程 DWORD WINAPI EventThreadSecond(LPVOID pParam) { for(int i(0) ; i != 5 ; i++) { m_Event.ResetEvent() ; cout << i*5+2 <<" + "<< i*6+4 << " = ?" <<endl ; cout << "让我想想..." << endl ; Sleep(3000) ; m_Event.SetEvent() ; } } 环境需求: Client Requires Windows XP, Windows 2000 Professional, Windows NT Workstation, Windows Me, Windows 98, or Windows 95. Server Requires Windows Server 2003, Windows 2000 Server, or Windows NT Server. Header Declared in Winbase.h; include Windows.h. Library Link to Kernel32.lib. DLL Requires Kernel32.dll. See Also |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。