Как освободить тему в Delphi

У меня есть многопоточное приложение, как я спрашиваюВот. I want to terminate the thread, and start a new one when following 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

но когдаFreeOnTerminate установлен вTrueЯ получаю Access Violation, но когдаFreeOnTerminate установлен вFalseЯ получаю утечку памяти. Как освободить тему?

Ответы на вопрос(3)

Ваш ответ на вопрос