CEvent event2(false,true);//首先定义一个手动事件对象
三个线程
UINT RecieveData( LPVOID pParam )
{
event2.Lock ();
::AfxMessageBox ("2");
return 0;
}
UINT StoreToExcel( LPVOID pParam )
{
if(WaitForSingleObject(event2,INFINITE)==WAIT_OBJECT_0)
{
Sleep(10000);
::AfxMessageBox ("3");
event2.ResetEvent ();//这里用ResetEvent 让它无信号,没错吧?
}
return 0;
}
UINT DrawCurve( LPVOID pParam )
{
if(WaitForSingleObject(event2,INFINITE)==WAIT_OBJECT_0)
{
Sleep(10000);
::AfxMessageBox ("4");
event2.ResetEvent ();//这里用ResetEvent 让它无信号,没错吧? }
return 0;
}
然后定义了一个单击响应:
void CThreadSameTimeView::OnLButtonDown(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
event2.SetEvent ();
CView::OnLButtonDown(nFlags, point);
}运行之后,第一次单击,确实跳出来了对话框显示”2“,过了10S”3“ ”4“同时显示了,这些都没有问题
可是再次单击就没有反应了呢?