#include <iostream>
#include <windows.h>
#include <process.h>
using namespace std;
HANDLE evenHand = NULL;
UINT WINAPI ThreadProc(LPVOID LPparam)
{
char* Name = (char *)LPparam;
cout << Name << endl;
cout << "Wait Event" << endl;
WaitForSingleObject(evenHand, INFINITE);
int i = 0;
while (i < 20)
{
cout << "Print Thread: " << i++ << endl;
}
return 0;
}
int main()
{
unsigned int ThreadID = 0;
char* ThreadName = const_cast<char*>("Thread first");
HANDLE mCreadThread = (HANDLE)_beginthreadex(nullptr, 0, ThreadProc, (void*)(ThreadName), 0, &ThreadID);
if (!mCreadThread)
{
}
evenHand = CreateEvent(nullptr, FALSE, FALSE, nullptr);
ResetEvent(evenHand);
cout << "Wait reset event" << endl;
Sleep(5 * 1000);
SetEvent(evenHand);
WaitForSingleObject(mCreadThread, INFINITE);
CloseHandle(mCreadThread);
system("pause");
return 0;
}