从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%。
版权声明:本文为博主原创文章,未经博主允许不得转载。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步