正如我在这里问的那样,我有多线程应用程序。我想终止线程,并在调用以下方法时启动一个新线程。
procedure TFRABData.RefreshDataset;
var
GridUpdater: TGridUpdater;
begin
if Assigned(updaterThread) and (updaterThread <> nil) then
begin
updaterThread.Terminate;
end;
GridUpdater := TGridUpdater.Create(True);
GridUpdater.OwnerForm := Self;
updaterThread := GridUpdater;
GridUpdater.FreeOnTerminate := False;
GridUpdater.Start;
CodeSite.Send('RefreshDataset executed');
end
但是,当FreeOnTerminate
设置为时True
,我得到访问冲突,但是当FreeOnTerminate
设置为时False
,我得到内存泄漏。如何释放线程?