如何干预一个线程的挂起、继续、停止?

解决方案 »

  1.   

    挂起:Suspend()
    继续:Resume()
    停止:EndThread()
      

  2.   

    是直接调用以上的函数吗?
    我试了,不行?
    我建了几个进程,我想有选择性的关闭某些线程,但TTHREAD没有上面的这此方法
      

  3.   

    TThread是一个抽象类,所以你必须首先派生出它的一个子类才行.
    File-->New-->Other-->Thread Object在探出的对话框中给子类取个名称,比如TMyThread就ok了.
    要调用以上的那些函数使用
    TMyThread.Execute()
    TMyThread.Suspend()
    TMyThread.Resume()
      

  4.   

    var XXX: TXXXThread;
    begin
    xxx.Suspend;
    ....
      

  5.   

    我遇到的问题是这样的:
      在表单上建一个创建线程的按扭,按下后,产生如下事件
      XXXThread.create(false,'mmm','123');(使某物体mmmm以123的速度运动)
     每点一次,就产生一个线程(不知道是不是,反正点了之后,运动速度明显加快),采用楼上的过程,线程全部关闭(要求只关闭其中的一些)
      

  6.   

    TMyThread.Execute()
    TMyThread.Suspend()
    TMyThread.Resume()
      

  7.   

    //创建线程
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    mytest:=Tmytest.Create(false);
    end;//停止线程
    procedure TForm1.Button2Click(Sender: TObject);
    begin
    stoped:=false;
    end;//挂起线程
    procedure TForm1.Button3Click(Sender: TObject);
    begin
    try
    if not mytest.Suspended then
    mytest.Suspend;
    except
    showmessage('线程未创建。');
    end;
    end;//激活线程
    procedure TForm1.Button4Click(Sender: TObject);
    begin
    try
    mytest.Resume;
    except
    showmessage('线程未创建。');
    end;
    end;在线程中加一个检测stoped=false的话.就exit