複製鏈接
請複製以下鏈接發送給好友

ResetEvent

鎖定
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