Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Zugriff mehrerer Threads aufeinander

  Alt 14. Jun 2013, 12:13
Etwas vielleicht vergleichbares hatte ich neulich auch. Erst wollte ich auch für jedes Gerät einen eigenen (relativ langsam laufenden) Watchdog-Thread aufsetzen.

Davon bin ich aber sehr schnell wieder abgesprungen, es wurde pro Anschluss ein einziger Thread, der alle auf dem Bus liegenden Geräte pollt. Bist du dir überhaupt sicher, dass du einfach parallel kommunizieren kannst wenn die Kommunikationsroutinen blockierend sind? Im Fall des seriellen Anschlusses beispielsweise blockieren andere Threads trotzdem wenn gerade ein Aufruf in einem anderen Thread hängt. Das nur als Hinweis.


Als zweiten Punkt möchtest du auf die eingelesenen Daten reagieren. Ich bleibe weiterhin dabei, dass sich die Threads für Gerätetyp auch kein Stück mit anderen (artfremden) Threads herumschlagen sollten. Du hast einen oder mehrere Threads, die sich um Informationsbeschaffung durch Polling kümmern. Die in Erfahrung gebrachten Werte werden in die entsprechenden Eigenschaften des Objekts geschrieben.
Das Objekt ließe sich weiterhin so einrichten, dass bei einem Aktualisieren der Werte Aktionen ausgeführt werden, beispielsweise eine Methode aufgerufen werden, die sich darum kümmert, welche neuen Informationen für die Geräte des Typs 2 sich daraus ergeben und geschrieben werden sollen. Diese Werte lassen sich in (wieder einen!) Thread für Typ 2 in eine Liste anhängen, was er in seinem nächsten Durchgang schreiben soll.
  Mit Zitat antworten Zitat