在这里出发事件  
        CTestEvent  *pEventObj= new CTestEvent();
pEventObj->StartupWriteLog ();
for(int i=0;i<100;i++)
{
//TRACE("%d  ",i);
SetEvent(pEventObj->m_LogEvent [0]); }    这里响应事件
         CTestEvent *pEvent= (CTestEvent *)lparam;
DWORD  dwRet = 0; while(true)
{
              dwRet  = WaitForMultipleObjects(
                               pEvent->m_LogEvent[0],false,INFINITE);
   
     if(dwRet ==WAIT_OBJECT_0 )
    {   
          
   //if(pEvent->m_bEndThread )
//  break;
   TRACE("%d ",m_RecordCout);
                      m_RecordCout++;   
    }
          }
为是么连续触发事件,会出现其中的事件不响应呢(在逐步调试下),如果直接运行则发现有从第二事件开始就不响应,我在线等待,谢谢

解决方案 »

  1.   

    CTestEvent是什么,SetEvent(pEventObj->m_LogEvent [0]);和WaitForMultipleObjects(pEvent->m_LogEvent[0],false,INFINITE);
    是怎么回事?
      

  2.   

    该在是么时候ResetEvent要看你的逻辑来定呀
      

  3.   

    跟你讨论一下:
    dwRet  = WaitForMultipleObjects(
                                   pEvent->m_LogEvent[0],false,INFINITE);
    这个函数应该有5个参数才对呀!
    第一个是事件个数,最后一个大概是范围QS-ALLINTPUT
    另外,你这一段是写在哪里响应事件的?