Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#1

Sequentielle Abarbeitung mit Threads - Anregungen erwünscht

  Alt 7. Dez 2017, 08:43
Ich habe gerade eine kleine Denkblockade . Folgende Situation: ich rufe Daten von einem REST-Server (auch von mir) ab. Da die Datenmengen auch mal etwas größer werden können, habe ich mir eine Art Pagination einfallen lassen, d.h. der Server schickt mir einen Response mit maximal 100 Datensätzen, welcher zusätzlich ein Objekt mit den Feldern offset, count und hasmoredata enthält. Damit kann ich am Client die passende Route errechnen, um die nächsten Datensätze abzurufen. Das funktioniert wie die Wutz, allerdings läuft das im Moment auf dem Client alles im Mainthread ab, der ist dann natürlich blockiert. Daher bin ich auf die Idee gekommen, jede Abfrage und anschließende Abarbeitung in einen Thread zu packen, habe aber Probleme bei der Implementation. Der derzeitige Code hat sinnbildlich den folgenden Aufbau:
Delphi-Quellcode:
procedure TMyClass.GetData;
var
  MoreData: Boolean;

  procedure ReceiveData;
  var
    Response: IResponse;
  begin
    Response := GetDataFromServer;
    DoSomeGreatWork;
    MoreData := Response.HasMoreData;
  end;

begin
  repeat
    ReceiveData;
  until not MoreData;
end;
Wie schon gesagt ist angedacht, ReceiveData in einen Thread auszulagern, aber ohne dass die Schleife vorzeitig verlassen wird. Mir fällt da einfach keine elegante Lösung ein, daher bitte ich um Vorschläge.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat