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

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

  • 相关阅读:
    c# NPOI读取xlsx
    内网搭建代理DNS使用内网域名代替ip地址
    Linux命令行快捷键
    Java基础数组
    Java基础语法
    python3发送邮件的脚本
    Java基础概述
    更多笔记
    Java基础面向对象(一)
    Linux awk抓取IP的两种方式
  • 原文地址:https://www.cnblogs.com/mao0504/p/4706858.html
Copyright © 2011-2022 走看看