有Timer1与Timer2,在Timer1中创建一个线程A,到数据库中查询数据,每次查询结束后,线程A挂起,唤醒另一个线程B,线程B执行结束后,挂起.(线程B在Timer2中创建)Timer1等待5秒后,在重新唤醒线程A执行查询.重复上述的过程.这个功能该如何实现,请各位大虾帮忙.最好有代码示例.

解决方案 »

  1.   

    我觉得你要实现的功能不需要将线程挂起、恢复那么麻烦啊:
    初始:Time1.enabled := false ;Time2.enabled := false;
    要执行A : Time1.enabled := true ;查询完后:Time1.enabled := false ;
    执行B : Time2.enabled := false ;执行完后:Time2.enabled := false ;
      

  2.   

    线程A和B之间在同一时间只能有一个在工作,所以,在A工作时,Timer2的Enabled要为false,同理,timer1也是一样。我该如何判断线程已经结束并激活另一个Timer呢?
      

  3.   

    Thread.OnTerminate := ThreadDone;//thread是你创建的线程
    在threaddone中发出信息告诉外部此线程结束,即可
      

  4.   

    procedure TAboutFrm.Timer1Timer(Sender: TObject);
    begin
      Timer1.enabled:=false;
      ThreadA:=xxx.crea...;
      ThreadA.OnTerminate := ThreadDone;
    end;procedure ThreadDone;
    begin
      //这里创建执行线程B
      ThreadB:=yyyy.crea...
      ThreadB.OnTerminate := StartTimer1
    end;procedure StartTimer1
    begin
      //Timer1等待5秒
      Timer1.enabled:=true;
    end;