- 事件内核对象:两种状态,受信状态与未受信状态,3个成员;
- nUsageCount(使用计数);
- bManualReset(是否人工重置);
- bSignagled(是否受信)。
- 基本函数:
- HANDLE CreateEvent(LPSECURITY_ATTRIBUTES lpEventAttributes,BOOL 不ManualReset,BOOL 不I你他俩State,LPCWSTR lpname);
- HANDLE OpenEvent(DWORD dwDesiredAccess,BOOL bInheritHandle,LPCWSTR lpname);获取lpname指定的内核对象句柄。
- BOOL SetEvent(HANDLE hEvent);将事件受信;
- BOOL ResetEvent(HANDLE hEvent);将事件置为未受信;
#include<windows.h>
#include<iostream>
#include<process.h>
using namespace std;
UINT __stdcall ThreadProcess(LPVOID lpParam);
HANDLE hEvent;
int main()
{
UINT Ui;
HANDLE hThread;
hEvent = ::CreateEvent(NULL, FALSE, FALSE, NULL);
hThread = (HANDLE)::_beginthreadex(NULL, 0, ThreadProcess, NULL, 0, &Ui);
::SetEvent(hEvent);
::WaitForSingleObject(hThread, INFINITE);
::CloseHandle(hEvent);
return 0;
}
UINT __stdcall ThreadProcess(LPVOID lpParam)
{
::WaitForSingleObject(hEvent, INFINITE);
for (int i = 0; i < 10; i++)
cout << " 测试!" << endl;
return 0;
}