关于计时器的问题,为何总时间大于设计的时间呢?菜鸟请教!在线等.........................

b634294 2006-04-17 04:40:56
我往数据库中插入5万条数据,用循环插入,共用了不到4分钟。但是我用计时器想控制节奏插入,设计共用10分钟插入这5万条,每隔一定时间插入一次,但是为什么用这样子插入五万条用的总时间大于我设计的总时间10分钟呢?
我计算的时间间隔,也就是计时器的interval应该没错的。

...全文
108 9 点赞 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
b634294 2006-04-18
发现总时间还是有误差的,还不是很精确.
  • 打赏
  • 举报
回复
qlwuu 2006-04-17
靠,拷贝下来没改符号...

while (GetTickCount-begtime < 100) do // <- 这里改成小于
...
  • 打赏
  • 举报
回复
qlwuu 2006-04-17
楼上的回答太强了,我是指最后的部分... @_@

程序有问题,要这样写一次也执行不了,第一次的GetTickCount-begtime > 100就退出了,

var
begtime: cardianl;
begin
while not terinated do
begin
begtime := GetTickCount;
while (GetTickCount-begtime > 100) do
sleep( 10 ); // 稍微休息一下,要不然cpu一直100%

doSomething();
end;
end;

这样也不是完全精确的,因为doSomething()的时间没法控制。
  • 打赏
  • 举报
回复
happyct 2006-04-17
var
begtime: dword;
begin
begtime := GetTickCount;
while (GetTickCount-begtime > 100) and (not Terminated) do //具体间隔时间你自己调整
begin
dosth...
begtime := GetTickCount;
end;

附,严重警告提问人:

你这种情况,在程序里面出现一下没事,如果和你老婆或是女友之间出现的话,一定要及早调整或是去医院检查
  • 打赏
  • 举报
回复
happyct 2006-04-17
晕死,csdn也有“发出回复”的快捷键或是热键?
  • 打赏
  • 举报
回复
happyct 2006-04-17
var
  • 打赏
  • 举报
回复
b634294 2006-04-17
可否请楼上具体说点,我不清楚这个用法啊GetTickCount.我必须定时更新数据库,不能早也不能晚.
  • 打赏
  • 举报
回复
hhnick 2006-04-17
timer响应的wm_timer消息,有的时候不够精确.
  • 打赏
  • 举报
回复
postren 2006-04-17
用GetTickCount比Timer精确
timer不精确的
  • 打赏
  • 举报
回复
相关推荐
发帖
语言基础/算法/系统设计
加入

1.6w+

社区成员

Delphi 语言基础/算法/系统设计
申请成为版主
帖子事件
创建了帖子
2006-04-17 04:40
社区公告
暂无公告