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%。

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

  • 相关阅读:
    Python-文件处理
    自动化测试框架(一)
    Turbine Netflix
    java基础笔记-日常问题总结不定期更新
    集合类库上(list,queue)
    日期相关类
    迭代与JDB
    团队组建——日渐消瘦队~
    结对学习感想
    实验一《Java开发环境的熟悉》_实验报告
  • 原文地址:https://www.cnblogs.com/mao0504/p/4706858.html
Copyright © 2011-2022 走看看