TC官方合作论坛

标题: 我用TC编的计时器不准, 求解 [打印本页]

作者: tloovee    时间: 2014-11-3 16:13
标题: 我用TC编的计时器不准, 求解
本帖最后由 tloovee 于 2014-11-3 18:08 编辑

我用TC编的计时器如下图所示

以(1000)毫秒为单位递增,到达指定数就进阶,
是专门开一个线程执行,
里面只有 i f 和 s e l e c t 语句, w h i l e 语句控制时间递增
里面只用到一次(辅助.等待(1000))的命令,

我测试了一下, 时间的递增关系正确, 但是一小时内比现实的时间慢了15秒,
求各位高手帮帮忙告诉我这是为什么,难道用TC无法编出时间准的计时器么?

求答案,求方法,拜托





作者: mzbqhbc    时间: 2014-11-3 17:50
本帖最后由 mzbqhbc 于 2014-11-3 17:53 编辑

直接这样来用线程来递增式的计算时间肯定会有慢的  ,windows下cpu都分了时间片的,  你那样计算的话除非CPU只执行你的线程,不做其他操作   ,但这是不可能的
一个简单的方法是,建议你可以用你那样递增式的计算时间 ,再过一个时间段 通过网络时间校准,
作者: tloovee    时间: 2014-11-3 18:06
mzbqhbc 发表于 2014-11-3 17:50
直接这样来用线程来递增式的计算时间肯定会有慢的  ,windows下cpu都分了时间片的,  你那样计算的话除非CPU ...

我想要对的是游戏中的时间, 所以网络标准时间对我没有用的,我玩的游戏里面有时间系统, 而游戏中的时间与现实中的时间有对应关系, 现实120秒就等于游戏中的一小时,依此类推
作者: madwinder    时间: 2014-11-3 18:40
本帖最后由 madwinder 于 2014-11-3 18:42 编辑

那可以用电脑系统时间作判断,系统时间总不会错了。

打个比方,获取当前时间,再递增,再次获取系统时间,如果等于递增的时间,进行操作。。。

作者: tloovee    时间: 2014-11-3 19:31
madwinder 发表于 2014-11-3 18:40
那可以用电脑系统时间作判断,系统时间总不会错了。

打个比方,获取当前时间,再递增,再次获取系统时间, ...

你的思路好象能用, 我先试一下看看吧, 谢谢帮忙,
作者: tloovee    时间: 2014-11-3 19:41
mzbqhbc 发表于 2014-11-3 17:50
直接这样来用线程来递增式的计算时间肯定会有慢的  ,windows下cpu都分了时间片的,  你那样计算的话除非CPU ...

思路好象没错, 只是我不怎么懂编写复杂的东西, 先采纳,以后慢慢研究吧, 还有一位和你的答案相似, 按先到先得的顺序采纳你的好了, 谢谢,
作者: madwinder    时间: 2014-11-3 19:46
tloovee 发表于 2014-11-3 19:41
思路好象没错, 只是我不怎么懂编写复杂的东西, 先采纳,以后慢慢研究吧, 还有一位和你的答案相似, 按先到 ...

用系统时间吧,比较准,我昨晚试过用网络上的时间跟签到,失败了!
原因:
只要你电脑后台有流量造成网速慢,或者服务器刚卡速了,时间就会不准的,或者不可以秒获。
作者: 78213505    时间: 2014-11-3 19:52
madwinder 发表于 2014-11-3 19:46
用系统时间吧,比较准,我昨晚试过用网络上的时间跟签到,失败了!
原因:
只要你电脑后台有流量造成网速 ...

用 日期时间里的  当前日期和日期间隔 试试吧

开始运行时记录下一个时间,每隔一定时间来看当前时间和之前记录时间的间隔
作者: tloovee    时间: 2014-11-3 19:56
madwinder 发表于 2014-11-3 19:46
用系统时间吧,比较准,我昨晚试过用网络上的时间跟签到,失败了!
原因:
只要你电脑后台有流量造成网速 ...

谢谢提醒,  
作者: tloovee    时间: 2014-11-4 23:03
78213505 发表于 2014-11-3 19:52
用 日期时间里的  当前日期和日期间隔 试试吧

开始运行时记录下一个时间,每隔一定时间来看当前时间和 ...

谢谢你提的方案,经过反复琢磨,你的意见最接近我的要求,




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1