zoukankan      html  css  js  c++  java
  • 从PCI上读取数据 线程和定时器效率 分类: 浅谈PCI arm-linux-Ubuntu 2013-08-07 08:18 740人阅读 评论(0) 收藏

    从PCI上读取数据 线程和定时器效率

    线程:

     mythread=AfxBeginThread(StartContinuous,(LPVOID)1,THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED);
     mythread->ResumeThread();

    UINT StartContinuous(LPVOID pParam)
    { HWND hWnd=(HWND) pParam;
     int len=0;
     FILE *fp;

     i=0;
     while(threadenable)
     {

      len = CPCI6312_ReadData(buf);
      if (len>0)
      {  
       reccnt += len;
       fwrite(buf,1,len,fp);
      }
     }

     len = CPCI6312_ReadLastData(buf);
     if (len>0)
     {
      reccnt += len;
      fwrite(buf,1,len,fp);
     }
     fflush(fp);
     fclose(fp);
     AfxMessageBox("end",MB_OK,NULL);

     return 0;
    }

    计数器方式:

    void CDemo2Dlg::OnTimer(UINT nIDEvent)
    {
     // TODO: Add your message handler code here and/or call default
     if(nIDEvent==1)//更新记录数据
     {
      runsec++;
      str.Format("record:%d (%d)",reccnt,runsec);
      m_list.AddString(str);
     }
     

     if (nIDEvent==2)//采集数据
     {
      len = CPCI6312_ReadData(buf);
      if (len>0)
      {  
       reccnt += len;
       fwrite(buf,1,len,fp);
      }
     }
     CDialog::OnTimer(nIDEvent);
    }

    同样的数据量,线程方式居然占用CPU 80% 以上,而计数器不到30%。

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    HDU2013 蟠桃记
    HDU2012 素数判定
    I00030 Grades conversion
    HDU2011 多项式求和
    HDU2009 求数列的和
    HDU2005 第几天?【日期计算】
    HDU2004 成绩转换
    HDU2006 求奇数的乘积
    HDU2007 平方和与立方和【序列处理】
    HDU2010 水仙花数【进制+趣味程序】
  • 原文地址:https://www.cnblogs.com/mao0504/p/4706858.html
Copyright © 2011-2022 走看看