多线程数据采集

#define   MAXBUFQUEUE   8  
  struct   BUFFER_ITEM   {  
        LPBYTE   Buffer;  
        HANDLE   hFinishDone;//标识数据处理完成    
  };  
  BUFFER_ITEM   BufferArray[MAXBUFQUEUE];  
   
  //初始化  
  for(int   i=0;i  {  
          Buffer   =   new   BYTE[...];  
          hFinishDone     =   CreateEvent(   NULL,FALSE,TURE,NULL   );   //开始有信号  
  }  
   
  采集线程      
  while(1)      
  {      
            for(i=0;i            {      
                  if   (   WAIT_OBJECT_0   ==WaitForSingleObject(    
                            BufferArray[i].hFinishDone,0   )//是否处理完,没有则下一个    
                  {  
                      采集数据      
                      PostThreadMessage(idThreadDataProcess,UM_SETDATA,  
                        (WPARAM)&(BufferArray[i]),0   );      
                  }                
              }      
     
  }      
     
   
  处理线程      
  while(GetMessage(&msg,NULL,0,0))      
  {      
                        if(msg.message==UM_SETDATA)      
                        {      
                              BUFFER_ITEM*   lpBuffer   =   (BUFFER_ITEM*)msg.wParam;  
                             
                            处理数据                                                  
                             
                            SetEvent(lpBuffer->hFinishDone);//数据处理完,重设有信号  
                            continue;      
                        }      
  }  
请使用浏览器的分享功能分享到微信等