Delphi终止线程的方法

所属分类:[Delphi] | 发表于:2010-3-7 14:28:34 | 人气(938)

今天在写一个辅助工具时,要用到退出线程,之前用了很多方法,也可以,今天又采了windows的api方法来终止,效果比较好,这里作一个记录

 

线程中:

TThreadExf = class(TThread)
    procedure Execute; override;
  end;

var

ThreadExf : TThreadExf;

....

 

procedure TThreadExf.Execute;
begin
  FreeOnTerminate := True;//结束后不需要调用free;
  while not Terminated do
  begin

    ...//这里是你处理的事务
    Sleep(100);
  end;
end;

 

程序中(结束线程):

TerminateThread(ThreadExf.Handle,0);
while WaitForSingleObject(ThreadExf.Handle,0)<> WAIT_OBJECT_0 do
begin
    Application.ProcessMessages;
end;

0    1