I have a multi-threaded application, as I ask here . I want to end the thread and start a new one when the next method is called.
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
but when FreeOnTerminateset to True, I get an access violation, but when FreeOnTerminateset to False, I get a memory leak. How to free the thread?
source
share