Thema: Delphi Thread abbrechen

Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5
  Alt 11. Mai 2003, 11:13
Du könntest eine Stille Exception auslösen und diese in der Execute-Funktion abfangen.

Delphi-Quellcode:
type
  EThreadExit = class(EAbort);

procedure TMyThread.HandleException
begin
 // System.ExceptObject liefert die Aktuelle Exception
  Application.ShowException(ExceptObject);
end;

procedure TMyThread.Execute;
begin
  try
    while (not Terminated) and (not Application.Terminated) do
    begin
      AktionenAusfuehren;
    end;
  except
    on E: EThreadExit do ; // nichts machen
    on E: Exception do
      Synchronize(HandleException);
  end;
end;

procedure TMyThread.AktionenAusfuehren;
begin
 // ...
  if ThreadAbbrechen then
    raise EThreadExit.Create;
 // ...
end;
  Mit Zitat antworten Zitat