Einzelnen Beitrag anzeigen

WiPhi

Registriert seit: 19. Feb 2015
90 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Thread mit TRestRequest

  Alt 30. Jun 2021, 07:08
Hi Zusammen,
Gibt es eine Art TRestClient.OnExecuting/TRestRequest.OnIdle, welche man besetzen könnte, so dass ich in Unterfunktionen
sowas machen wie if (TThread.CurrentThread.CheckTerminated()) then DoContinue := False; ?
Oer kann ich dem Rest-Request irgendwie sagen restRequest.CancelOnThreadTerminated := True; ?
Für Ideen und Tipps wäre ich sehr dankbar!

Mit freundlichem Gruß
Incocnito
Mein erster Gedanke wäre den Thread mittels einem Event zu kontrollieren und sobald dies gesetzt ist, diesen zu beenden:
Delphi-Quellcode:
constructor TBThread.Create;
begin
  inherited Create(true);
  FTerminateEvent := CreateEvent(nil, true, False, nil);
end;

destructor TBThread.Destroy;
begin
  SetEvent(FTerminateEvent);
  CloseHandle(FTerminateEvent);
  inherited;
end;

procedure TBThread.Execute;
begin
  while not Terminated do
  begin
      if WaitForSingleObject(FTerminateEvent, fcint) = WAIT_TIMEOUT then
    begin
      if not Terminated then
        DoSomething;
    end;
  end;
end;

procedure TBThread.TerminatedSet;
begin
  inherited;
  SetEvent(FTerminateEvent);
end;
Wer sucht, der findet. Wer länger sucht, findet mehr.
  Mit Zitat antworten Zitat