线程【六】线程安全退出

问题1:

一般来说,要让你的线程能够尽快终止,必须在Execute方法中在较短的时间内不断地检查Terminated标志,以便能及时地退出。这是设计线程代码的一个很重要的原则!

在这种情况下使用上述思路一般不会出什么问题!

 

 

type

  TThread1 = class(TThread)

  private

    procedure Test();

  protected

    procedure Execute; override;

  end;



procedure TThread1.Execute;

var

  i:Integer;

begin

  FreeOnTerminate := True;//线程正常结束后自动释放线程资源

  For i:=0 to 1000 do

  begin

    if Terminated then break;//线程非正常结束时,遇到标识马上退出!

    Test()//线程内的业务处理函数

  end;

end;



procedure TForm1.FormDestroy(Sender: TObject);

begin

  if Assigned(t1) then t1.Terminate;//在窗体关闭时做关闭标识

end;
View Code

 

你可能感兴趣的:(线程安全)