定义全局变量
CEvent starthread1(FALSE,TRUE);
CEvent endthread1(FALSE,TRUE);
CEvent starthread2(FALSE,TRUE);
CEvent endthread2(FALSE,TRUE);
void CMyThreadView::OnBeginThread()
{
// TODO: Add your command handler code here
starthread1.SetEvent();
endthread1.ResetEvent();
_beginthreadex(NULL,0,StartThread1,NULL,0,NULL);
_beginthreadex(NULL,0,StartThread2,NULL,0,NULL);
}
void CMyThreadView::OnCloseThread()
{
// TODO: Add your command handler code here
starthread1.ResetEvent();
endthread1.SetEvent();
}
unsigned WINAPI CMyThreadView::StartThread1(LPVOID lparam)
{
WaitForSingleObject(starthread1.m_hObject,INFINITE);
while (true)
{
int result=WaitForSingleObject(endthread1.m_hObject,0);
if (result== WAIT_OBJECT_0)
{
break;
}
}
return 0;
}
unsigned WINAPI CMyThreadView::StartThread2(LPVOID lparam)
{
WaitForSingleObject(starthread2.m_hObject,INFINITE);
while (true)
{
int result=WaitForSingleObject(endthread2.m_hObject,0);
if (result== WAIT_OBJECT_0)
{
break;
}
}
return 0;
}