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.