Event 类提供了对事件的支持。事件是一个允许一个线程在某种情况发生时,唤醒另外一个线程的同步对象
#include "stdafx.h"
#include<iostream>
#include<EventSys.h>
#include <process.h>
using namespace std;
HANDLE hevent = CreateEvent(NULL, TRUE, FALSE, NULL);
void myfun1(void * m_p)
{
int * i = (int *)m_p;
while (1)
{
(*i)++;
cout <<" myfun1"<<" "<< (*i) << endl;
Sleep(100);
if ((*i) > 5)
{
SetEvent(hevent);
}
if ((*i) == 10)
{
_endthread();
}
}
}
void myfun2(void * m_p)
{
WaitForSingleObject(hevent, INFINITE);
while (1)
{
int * i = (int *)m_p;
(*i)++;
cout << " myfun2 " << *i << endl;
Sleep(100);
if (*i == 10)
{
_endthread();
}
}
}
int main()
{
int i = 0;
int j = 0;
HANDLE m_thread[2];
m_thread[0] = (HANDLE)_beginthread(myfun1, 0, &i);
m_thread[1] = (HANDLE)_beginthread(myfun2, 0, &j);
WaitForMultipleObjects(2, m_thread, true, INFINITE);
return 0;
}