如12点运行一个事件,一定要用TIMMER吗?TIMER整天开着会有问题吗?

解决方案 »

  1.   

    第一个问题想不到更好的解决办法,第二个问题么,如果时间精度要求不高的话,你可以把timer的时间间隔调长一些,只要事件里不写特别复杂的操作比如重复断开再连接数据库之类的,应该不会有影响
      

  2.   

    没事的,你把Timer的时间间隔设长一点,占用的资源不多,几乎可以忽略.
      

  3.   

    呵呵,我觉得timer未必好用。可以用多线程来实现(如果你对线程熟悉的话),线程启动后,首先读取当前时间,计算到12点的时间差,然后执行sleep(所需等待的毫秒数)伪代码如下:
    procedure TAThread.Execute;
    begin
      { Place thread code here }
      while true do begin
        if(self.Terminated) then exit;
        self.Interval:=到12点所需的时间差,单位毫秒;    sleep(self.Interval);
        EnterCriticalSection(Sect1);    执行所需要做的工作    LeaveCriticalSection(Sect1);      end;
    end;