希望做个线程某固定时间间隔后就执行某方法,但总是不成功,希望大家给看看,谢谢! 
代码如下:     
ThreadUpdate     =       class(TThread) 
        protected 
            FTimer:TTimer; 
            procedure   FTimerTimer(Sender:TObject); 
            procedure     Execute;       override; 
        public 
            Constructor     Create; 
            Destructor     Destroy;       override; 
        end; 
    function   myfunction():string; 
implementation     constructor       ThreadUpdate.Create;     begin 
            inherited       Create(False); 
            FTimer:=TTimer.Create(nil); 
            FTimer.OnTimer:=   FTimerTimer; 
            FTimer.Interval   :=100;   //执行间隔时间 
              FTimer.Enabled   :=true; 
    end;     destructor       ThreadUpdate.Destroy; 
    begin 
            inherited; 
            FTimer.Free; 
    end; procedure       ThreadUpdate.Execute; 
    begin 
      myfunction; 
    end; 
procedure   ThreadUpdate.FTimerTimer(Sender:   TObject); 
begin 
    Execute; 
end;

解决方案 »

  1.   

    那里有这样用线程的 看看书吧 Execute方法是自动执行 执行完毕代表线程结束,用timer来触发execute 狂晕
      

  2.   

    呵呵.楼上说的正理,线程是自动运行Execute的,不会受那个timer控制的
      

  3.   

    可以把线程运行完之后不要释放,挂起,然后你再用Timer来唤醒线程。
      

  4.   

    可以在timer的ontimer事件中执行线程
      

  5.   

    TO ideation_shang & winstonbonaparte 
    线程在CREATE时会自动执行它的Execute,这个我知道(应该地球人都知道吧^_^)
    不过Execute绝对是可以再调用的嘛,不要欺负我不懂~放在另个不停执行的线程里调用有啥问题?这是我不明白的地方。不过这个问题现在用其他办法解决了,但还是想知道,希望哪位能告诉小妹我一下,谢谢了