VC多线程解决有些项目中的数据存取问题

         做医学心电数据及图形显示,诱发电位数据及图形显示已经有近五个年头了,在这类程序中主要是数据的采集及后期的处理,以心电数据为例,从人体采集的心电数据一般为每秒200~500点,如果按每秒钟绘制一次,那么屏幕的显示将是有停顿的,并且给人的整体感觉不好,那么如何来解决这个问题呢。

1.问题的提出。

  a.时实采集的数据与绘制图形的数据如何存放,如何取出。

 b.如果界定原始数据中有能取出的数据。

        为此,我们要准备两个数据缓冲区,一个存放原始数据,一个存放取出的数据(这个可以要也可以不要,可以用要用到这个数据的另个函数传入数据指针,然后取走就是)。

       用线程来实现数据的取,线程一直处于数据的取状态,当原始数据中的点到达取的点数,那么线程就取走点,如:我们定义一个1000的数组用于存放原始数据。

          int  *m_pData ; m_pData = new int[1000] ,

         再定义一个,读的位置m_iCurReadPos ,一个写的位置 m_iCurWritePos ,当

          m_iCurWritePos - m_iCurReadPos > 要取的点数  ,这个时候就可以完成一次取点了。

         然后,m_iCurReadPos = m_iCurReadPos + 要取的点数,位置往后移,如果达到最大长度时,那么

         m_iCurReadPos = 0 ; 当然m_iCurWritePos 是随着原始数据的累加而往后移的,现在只考虑计算机的读速度比存速度快,因这样的原始数据一般来自于网络,串口传输,远比计算机的处理速度慢得多。

        大概思想就是这样,先写个线程试试,下篇文章我会用程序代码说明如何实现这个存取问题。好了休息,明天还有一大堆程序要写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tangxingbin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值