var 
  thread:TMyThread;//线程全局变量//我在一个按钮中激活了上面的那个线程,如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
  thread:=TMyThread.Create(false);
end;//现在我点击另外一个按钮,目的是想查看刚才那个线程是否已经正在运行中
procedure TForm1.Button2Click(Sender: TObject);
begin
  这里判断刚才那个线程是否正在运行中,如果是,则Suspend它,如果是挂起的,则Resume它。请问应该怎么实现?
end;

解决方案 »

  1.   

    if AThread.Suspended then  AThread.Resume else AThread.Suspend;
      

  2.   

    可以用一个全局变量,在线程运行过程中改变变量的值,在主线程的timer控件中判断这个全局变量的值有没有达到一定的大小,如果是则线程结束,如果没有则线程还在执行,那就挂起
      

  3.   

    if AThread.Suspended then  AThread.Resume else AThread.Suspend;
    如果该线程还并没有被创建呢?这样不行吧
      

  4.   

    那再加个 if XXXTHREAD = NIL THEN ......
    当然线程结束时要 XXXTHREAD := NIL