ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 多线程数据采集

多线程数据采集

原创 Linux操作系统 作者:licup123 时间:2009-07-09 17:09:20 0 删除 编辑
#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;      
                        }      
  }  

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10697500/viewspace-608768/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-06-22

  • 博文量
    51
  • 访问量
    117113