Is het veilig om een repeat until loop te doen in een TTask? En kan deze task dan ook gewoon gestopt worden? Ik wil namelijk elke 30 sec een http get doen bij mijn api; om te kijken of er nieuwe clients beschikbaar zijn - en in plaats van dit in de main thread te doen met een timer dacht ik aan een TTask, met daarin een while/repeat until - loop - en een pause om 30 seconden tussen de aanvragen te hebben.

Kan ik dan "gewoon" cancel doen om de Task te stoppen, en is dit "veilig" - of moet ik in de loop controleren op een cancel?

Delphi Code:
  1. FListTask := TTask.Create(procedure
  2.     var
  3.       lHTTP: TIdHTTP;
  4.       IdSSL: TIdSSLIOHandlerSocketOpenSSL;
  5.     begin
  6.       lHTTP := TIdHTTP.Create(nil);
  7.       try
  8.         lHTTP.ReadTimeout := 30000;
  9.         lHTTP.HandleRedirects := True;
  10.         IdSSL := TIdSSLIOHandlerSocketOpenSSL.Create(lHTTP);
  11.         IdSSL.SSLOptions.Method := sslvTLSv1;
  12.         IdSSL.SSLOptions.Mode := sslmClient;
  13.         lHTTP.IOHandler := IdSSL;
  14.         lHTTP.CookieManager := IdCookieManager1;
  15.       Finally
  16.         try
  17.           repeat
  18.             lHTTP.Get('http://website.com/'+lPath, TStream(nil));
  19.           until true;
  20.         Finally
  21.           lHTTP.Free;
  22.         end;
  23.       end;
  24.     end);

Tevens - ik wil gebruik maken van de cookie manager die op het mainform staat, is dat veilig vanuit de Task? of moet ik daar een eigen cookie manager aanmaken? Het is maar juist omdat in de mainthread wordt ingelogd, en er een cookie wordt opgeslagen voor de sessie. En die cookie heb ik ook nodig voor de verbinding om de lijst met clients op te vragen