Delphi多线程销毁
时间: 2023-11-17 14:40:28 浏览: 82
在Delphi中销毁多线程可以使用TThread类的Terminate方法。Terminate方法会将线程的Terminated属性设置为True,表示线程应该停止运行。在线程的Execute方法中,需要定期检查Terminated属性,如果为True,就应该退出线程。具体代码如下:
1. 在主线程中创建并启动多线程:
procedure TForm1.Button1Click(Sender: TObject);
begin
FThread := TMyThread.Create(True);
FThread.FreeOnTerminate := True;
FThread.Resume;
end;
2. 在多线程的Execute方法中检查Terminated属性:
procedure TMyThread.Execute;
begin
while not Terminated do
begin
// 线程运行的代码
end;
end;
3. 在主线程中销毁多线程:
procedure TForm1.Button2Click(Sender: TObject);
begin
if Assigned(FThread) then
begin
FThread.Terminate;
FThread.WaitFor;
FThread := nil;
end;
end;
在销毁多线程时,先调用Terminate方法将Terminated属性设置为True,然后调用WaitFor方法等待线程结束,最后将线程对象置为nil。这样可以确保线程被完全销毁。
阅读全文