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

解决方案 »

  1.   

    用GetTickCount比Timer精确
    timer不精确的
      

  2.   

    timer响应的wm_timer消息,有的时候不够精确.
      

  3.   

    可否请楼上具体说点,我不清楚这个用法啊GetTickCount.我必须定时更新数据库,不能早也不能晚.
      

  4.   

    晕死,csdn也有“发出回复”的快捷键或是热键?
      

  5.   

    var
      begtime: dword;
    begin
      begtime := GetTickCount;
      while (GetTickCount-begtime > 100) and (not Terminated) do //具体间隔时间你自己调整
      begin
        dosth...
        begtime := GetTickCount;
      end;附,严重警告提问人:你这种情况,在程序里面出现一下没事,如果和你老婆或是女友之间出现的话,一定要及早调整或是去医院检查
      

  6.   

    楼上的回答太强了,我是指最后的部分... @_@程序有问题,要这样写一次也执行不了,第一次的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()的时间没法控制。
      

  7.   

    靠,拷贝下来没改符号...while (GetTickCount-begtime < 100) do  // <- 这里改成小于
      ...