taufgabensorte1 ließt sekündlich Daten aus etwa 50 Geräten von Typ 1 aus
...und sichert die Daten in eine Queue.
taufgabensorte2 macht genau das gleiche mit etwa 10 Geräten von Typ 2
Eine weitere Queue für die Empfangsrichtung.
Wenn jetzt bestimmte Daten aus einem der Geräte von Typ 1 gelesen wurden, sollen diese in ein (oder auch mehrere) definierte(s) Gerät(e) von Typ 2 geschrieben werden. Also sollte dann in die Aufgabenliste des jeweiligen Threads geschrieben werden
Da haben wir dann nochmal 2 weitere Queues für die Senderichtung.
Du brauchst also threadsichere Queues (first-in-first-out).
Hierzu könnte man die Klasse
TThreadList
verwenden.
Das Grundgerüst sieht so aus:
Delphi-Quellcode:
TThreadObjectQueue = class(TObject)
private
FList : TThreadList;
public
constructor Create;
destructor Destroy;override;
procedure Push(value:TObject);
function Pop:TObject;
function IsEmpty:Boolean;
property Count:Integer read GetCount;
end;
Die Daten sind bei dir anscheinend nur Strings.
Ich würde empfehlen jeden Datensatz in einem Objekt zu speichern.
Die beiden Threads mit ihren Empfangs- und Sendequeue bilden jeweils einen
Actor.