多线程问题

[复制链接]
 楼主| 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 就一直等着
yybj 发表于 2012-3-29 18:51 | 显示全部楼层
用定时器保存试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

177

主题

1653

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部