有几个函数,如何隔一个时间段就分别调用?我用的方法是在每个函数之间就用一个sleep(n),这样也能实现,不过我不知道用sleep(n)好不好,或是还有别的好的方法?

解决方案 »

  1.   

    sleep(n)就行,能解决问题,且不带来付作用就是好方法。以下的代码也能完成同样的功能,是否带来付作用有待你的测试:
    //延时过程
    procedure Delay(Msecs : Integer);
    var
      FirstTickCount : real;
    begin
      FirstTickCount := GetTickCount;
      Repeat
        Application.ProcessMessages;
      Until ((GetTickCount - FirstTickCount) >= LongInt(Msecs));
    end;
      

  2.   

    同意XuDunYu(西门吹雪) 的说法!sleep虽然简单但并不实用,总不能在函数里全加sleep语句吧?!~_~
      

  3.   

    sleep是让整个程序都悬挂起来了,用法不太好!
    方法一:我建您使用这个过程
       procedure Delay(Msecs : Integer);
       var
         FirstTickCount : real;
       begin
         FirstTickCount := GetTickCount;
         Repeat
           Application.ProcessMessages;
         Until ((GetTickCount - FirstTickCount) >= LongInt(Msecs));
       end;
    方法二:
       你使用Timer控件更好,你改变它的属性设置为多少秒调用一次。
       再添写过程
    end;
      

  4.   

    各个函数没有关联,
    比如
    function 1
    sleep(n);
    function 2
    sleep(n);
    ...
    函数也就四,五个.
    还有我不是太懂sleep的用法,是不是sleep(n)期间,程序就不能响应外界的消息了呢?
      

  5.   

    sleep期间,你的进程不会响应消息,也不能操作其它。
    不是好方法。降低效率。