毫秒级触发问题,请大家帮忙看看(不知道应该选择什么分类) ( 积分: 200 )

  • 主题发起人 主题发起人 zspdecember
  • 开始时间 开始时间
Z

zspdecember

Unregistered / Unconfirmed
GUEST, unregistred user!
现接到一个计时的案子,要精确到50ms为单位的微调。
基本信息如下:
一百个对象,分别计固定时长。对象物理位置固定。条件触发后,我决定给哪一个对象开始计时。
计时满后给该对象的一个属性赋值。
例如:读到item1,我开始对itme1计时,到250毫秒后,item1.enterin变为true。
现在问题是怎样才能计时到250毫秒,程序涉及实物通信,如果差了50ms以上会有偏差。所以要求计时精确。用d本身带的timer计时,30个timer一起开时,会有51毫秒每五分钟的误差。
请大家帮忙看看有没有什么好办法解决?
 
这个不清楚.
 
可以使用GetTickCount函数
鉴于系统性能,可以建立线程池进行缓冲
 
gettickcount?得到开始后所计的毫秒数,然后呢?计算差值后,我怎么触发?我只有单CPU,多线程要按时间片来吧,我一百多个线程轮过来会不会误差已经大过了我要求的50ms?
用timesetevent可以不?
感谢有用的回复,这个回复给分。
 
windows本身就做不到精确计时,因为它不是一个实时操作系统。
 
可以使用GetTickCount函数能实现。
 
结了,我用timegettime,timesetevent,timekillevent做了。不能到1毫秒。但已经很快了。将就用了。timegettime跟gettickcount类似,但在有的环境下,timegettime得到的是
long型数,而gettickcount得到的不一定准。
 
后退
顶部