线程同步-事件内核对象
- 事件內核對象:兩種狀態,受信狀態與未受信狀態,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;
}
總結
以上是生活随笔為你收集整理的线程同步-事件内核对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神经网络-前向传播
- 下一篇: linux的基础知识——本地套接字