HANDLE hEvent1, hEvent2;
DWORD __stdcall Thread1(void*)
{
::WaitForSingleObject(hEvent1, INFINITE);
::_wsetlocale(LC_ALL, L"");
wcout<< L"第 1 个线程已经执行" <<endl;
return 0;
}
DWORD __stdcall Thread2(void*)
{
::_wsetlocale(LC_ALL, L"");
wcout<< L"线程2要求输入一个数" <<endl;
int a;
cin>>a;
SetEvent(hEvent1);
SetEvent(hEvent2);
return 0;
}
void main()
{
::_wsetlocale(LC_ALL, L"");
DWORD d; hEvent1 = ::CreateEvent(0, TRUE, FALSE, 0);//手动,未触发
hEvent2 = ::CreateEvent(0, TRUE, FALSE, 0);//手动,未触发 CreateThread(0,0,Thread1,0,0, &d);
CreateThread(0,0,Thread2,0,0, &d); ::SignalObjectAndWait(hEvent1, hEvent2, INFINITE, 1);
wcout<< L"主线程继续执行..." <<endl;
SuspendThread(GetCurrentThread());
}