Delphi 线程Thread释放的方式
1、线程的释放方式:
- 停止后 自动释放
- 手动停止后 自动释放
- 手动释放。
注意:如果线程已经停止并且自动释放,再去手动停止,就会报错。
2、代码示例:
2.1、停止后自动释放的线程(FreeOnTerminate := True;):
constructor TMyThread.Create;
begin
inherited Create( True );
FreeOnTerminate := True;
end;
procedure TMyThread.Execute;
begin
//功能代码
//此方法完成后线程就已经停止了
end;
2.2、手动停止后自动释放的线程:
constructor TMyThread.Create;
begin
inherited Create( True );
FreeOnTerminate := True;
end;
procedure TMyThread.Execute;
begin
while not Terminated do //not Terminated do
begin
//功能代码
end;
end;
procedure Test
begin
Thread1 := TMyThread.Create( Self );
Thread1.Terminate;
end;
2.3、手动释放的线程:
constructor TMyThread.Create;
begin
inherited Create( True );
end;
procedure TTestThread.Execute;
begin
while not Terminated do //not Terminated do
begin
//功能代码
end;
end;
procedure Test
begin
Thread1 := TMyThread.Create( Self );
Thread1.Terminate;
Thread1.WaitFor; //等待线程执行完成
Thread1.Free;
end;
创建时间:2020.07.31 更新时间: