AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Vorgehensweise Threads + TIdTCPClient

Vorgehensweise Threads + TIdTCPClient

Ein Thema von frasch75 · begonnen am 28. Jan 2021 · letzter Beitrag vom 30. Jan 2021
 
frasch75

Registriert seit: 21. Jan 2012
Ort: Leipzig
3 Beiträge
 
Delphi 10.3 Rio
 
#1

Vorgehensweise Threads + TIdTCPClient

  Alt 28. Jan 2021, 17:20
Hallo,
habe bislang mit threads noch nichts programmiert, deshalb suche ich mal Anregungen zur möglichen Vorgehensweise im konkreten Fall. Ich hoffe ich kann mich halbwegs verständlich ausdrücken.

Ich habe eine Anwendung mit Tages-Kalender (ähnlich wie Outlook, allerdings 1min Stufung), der auch alle 60s aktualisiert werden soll. Bedeutet u.a., dass die Zeitskala jede Minute nach oben rutscht. Außerdem wird die aktuelle Anwendungszeit (nicht identisch mit realer Zeit) in der Statuszeile angezeigt.

Die Einträge für den Kalender kommen aus TLists. Diese werden periodisch (derzeit noch seriell) durch xml-Abfragen über den TCPClient gefüllt. Dabei habe ich zuerst eine primäre Abfrage, und dann zwei Detailabfragen, die sich auf IDs aus der Primärabfrage beziehen (unterschiedliche xml-Anfragen, lassen sich also nicht zusammenfassen).

Bei kleineren Umgebungen funktioniert das (wie immer) auch sehr gut. Bei größeren dauern die Abfragen und das anschließende Parsen (und notwendige Manipulieren) der xml-Ergebnisse mit zunehmender Laufzeit jedoch immer länger (es werden halt immer längere Listen, die abzuarbeiten sind). Dadurch hängt in der Zwischenzeit die Aktualisierung des Kalenders (tw. 3-4min, hohe CPU-Last).

Nun habe ich die Idee, alle 3 Abfragen in threads auszulagern, damit der Kalender trotzdem aktualisiert werden kann. Zudem könnten aus meiner Sicht die beiden Detailabfragen parallel erfolgen und geparst werden. Also zuerst ein Primär-Thread, und wenn der beendet ist dann parallel 2 Sekundärthreads. Wenn die Abfragen alle durch sind, z.B. 30s warten, dann das ganze von vorne.

Denkt Ihr, dass das eine mögliche Vorgehensweise wäre? Müsste ich dann mehrere TCPClients definieren? Hierbei gibt es noch das Problem (?), dass ich mich erst beim Server registrieren muss (auch per xml-API), bevor er mir irgendwelche Daten liefert.
Es geht mir hier eher um grundsätzliche Ansätze als konkrete Umsetzungen; das wäre dann eh meine Hausaufgabe

Vielen Dank
Frank.
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz