打印

多线程问题

[复制链接]
800|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gxgclg|  楼主 | 2012-3-29 18:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
系统采用多线程,其中一个线程想要每隔一秒保存一次数据
当前设定该线程优先级为最高THREAD_PRIORITY_HIGHEST或者THREAD_PRIORITY_TIME_CRITICAL
但采集的数据仍然会有丢失,即隔几分钟就有一秒没有采集
while(1)
{
  。。。。。。
  end_time
  n=end_time-start_time
  sleep(1000-n);
  start_time
}
这样做了之后稍微好一点,但还是会有丢失。。。还有没有什么好办法?

相关帖子

沙发
sinadz| | 2012-3-29 18:42 | 只看该作者
楼主可以试试,另开一个线程B

使用特权

评论回复
板凳
sinadz| | 2012-3-29 18:42 | 只看该作者
用GetTickCount函数获取起始时间点跟当前时间点,两者相减大于900ms的时候就可以在A线程中进行保存数据的操作了, WinCE线程时间调度大约为100ms,这样子应该不会丢,定时也基本准确吧

使用特权

评论回复
地板
火箭球迷| | 2012-3-29 18:45 | 只看该作者
可以用Event来做同步, 保存线程不SetEvent 就一直等着

使用特权

评论回复
5
yybj| | 2012-3-29 18:51 | 只看该作者
用定时器保存试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

177

主题

1653

帖子

1

粉丝