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

从PCI上读取数据 线程和定时器效率相关推荐

  1. ffplay分析(从启动到读取数据线程插入到字幕、音频、视频解码前的队列操作)

    <ffplay的数据结构分析> <ffplay分析(视频解码线程的操作)> <ffplay分析(音频解码线程的操作)> <ffplay 分析(音频从Frame ...

  2. 从服务器获取文件错误,在尝试获取许可证时出现无法从许可证服器上读取数据的错误信息...

    Problem [Simplified Chinese] 在尝试获取许可证时遇到FLEXlm -16 "无法从许可证服务器上读取数据"的错误信息. Symptom 完整的错误信息如 ...

  3. 许可证服务器读取文件时警告错误,在尝试获取许可证时出现无法从许可证服器上读取数据的错误信息...

    Problem [Simplified Chinese] 在尝试获取许可证时遇到FLEXlm -16 "无法从许可证服务器上读取数据"的错误信息. Symptom 完整的错误信息如 ...

  4. 汇编 --- 从磁盘(扇区2到18)上读取数据到内存中

    下面代码读取柱面:0,磁头:0,扇区从2到18的数据到内存 0x8200~0xa3ff处 需要明白以下几点: 给定柱面,磁头,一个扇形区域是512字节,对应的物理可以理解为512个灯泡组(一个灯泡组有 ...

  5. 当小内存遇上大量数据,你该怎么解决这个问题?

    作者丨Itamar Turner-Trauring 译者丨夏夜 策划丨万佳 当你写了一个处理数据的软件,它可能在小样本文件上运行地很好,但一旦加载大量真实数据后,这个软件就会崩溃. 问题在于你没有足够 ...

  6. java excel导入前台_java上传excel表格并读取数据返回到前台

    如果你对里面的代码不熟悉不知道的话,建议先浏览一遍代码再拿去用, 这里我介绍一下这个过程的思路: 1.定义变量那些就不说了 , 2.首先是上传文件并保存的代码 3.根据excel表的路径来读取文件,之 ...

  7. ITK:对多个线程上的数据进行操作以利用多核处理器

    ITK:对多个线程上的数据进行操作以利用多核处理器 ITK:对多个线程上的数据进行操作以利用多核处理器 内容提要 结果 C++实现代码 ITK:对多个线程上的数据进行操作以利用多核处理器 内容提要 内 ...

  8. Hibernate上传数据到数据库,从数据库读取数据到本地模板代码

    1.Hibernate上传数据到数据库: 1 //创建一个session对象 2 Session session1=HibernateTools.getSession(); 3 //Fenciresu ...

  9. 如何创建最简单的 ABAP 数据库表,以及编码从数据库表中读取数据 (上) 试读版

    ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍 ABAP 标准培训教程 BC400 学习笔记之二:Cross-client 和 Clien ...

  10. python从csv中读取数据打印到屏幕上-从Python中的CSV文件读取数据

    我正在从包含以下数据的CSV文件(xyz.CSV)读取数据:col1,col2,col3,col4 name1,empId1,241682-27638-USD-CIGGNT ,1 name2,empI ...

最新文章

  1. 统计学派的18种经典「数据分析方法」
  2. mysql binlog 二进制_二进制日志-mysqlbinlog工具的使用
  3. Perhaps you are running on a JRE rather than a JDK?
  4. anaconda: command not found
  5. css 背景图 左右空白,缩小窗口时CSS背景图出现右侧空白BUG的解决方法
  6. 【css】css实现斜线表头
  7. 利用R语言进行具有周期性的时间序列分析
  8. android官方转圈圈,android 弹出之后,一直转圈圈??
  9. EMW3162 AT固件的使用【2】
  10. Anaconda奇怪问题记录:WARNING conda.exceptions:print_unexpected_error_report(1251): KeyError(‘pkgs_dirs‘)
  11. 用C语言程序实现十进制转换为二进制
  12. 2007年开关稳压电源设计报告!!!
  13. 定向光和天空盒(个人笔记)
  14. windows下安装yii2
  15. 河北工业大学 离散数学学习资料分享(课件,教材,习题,总结)
  16. linux 关闭sendmail
  17. [opencv完整项目详解] 传统图像算法解决路标的检测和识别(改进升级版)
  18. ArcEngine线分割面的实现方法
  19. 易基因:禾本科植物群落的病毒组丰度/组成与人为管理/植物多样性变化的相关性 | 宏病毒组
  20. 部署DM MPP主备集群

热门文章

  1. 使用yum安装Apache+PHP+MySQL
  2. Ancient Knight(打造Windows Mobile平台最专业的游戏修改器)
  3. 24岁女孩与30岁男人的精彩对白
  4. Ant运行build.xml执行服务器scp,异常解决jsch.jar
  5. 2018JavaScript状态调查:5个重要的思考( import takeaways) (摘译)
  6. wenbao与最短路(Floyd)
  7. 软件测试第四组第一周作业第一天
  8. Selenium-鼠标操作
  9. [处理数据的心得][1]--相关矩阵的可视化
  10. 基于VisualStudio11开发Windows8的Metro sample讲解(1)MessageBox