Moin !
Ich versuche mich gerade an etwas Theorie zum Thema Threads, Klassen und Notifikationen. Und dabei bin ich auf ein paar Dinge gestoßen wo ich im Moment nicht weiter komme.
Zu meiner Idee ...
Nehmen wir an wir wollen eine Anwendung erstellen die von mehreren Eingangsquellen Daten aufnehmen kann. Und gehen wir mal weiter davon aus das ein Eingang ein
TCP Socket ist und ein Eingang z.B. eine
CSV Datei.
Um das ganze möglichst universell zu halten ist meine Idee nun, die Eingänge jeweils in eine Klasse zu packen. Wir erstellen also zwei Klassen die in etwa so aussehen könnten:
Delphi-Quellcode:
type
TInput = class(TPersistent)
private
Daten : string;
InpThread : TInputThread;
protected
public
constructor Create;
destructor Destroy; override;
published
end;
InpThread ist an dieser Stelle nur ein "Platzhalter" der mittels Thread Daten liefern kann. Hier könnte letztlich alles mögliche stehen. Sei es ein
TCP Server, eine serielle Schnittstelle, ein Thread der eine
CSV auswertet, ....
Der Thread schaut im Moment mal so aus:
Delphi-Quellcode:
type
TInputThread = CLASS(TThread)
private
Daten : string;
protected
procedure execute; override;
public
constructor create; virtual;
end;
procedure TInputThread.execute;
begin
// while not Terminated do;
Daten := 'test';
end;
constructor TInputThread.create;
begin
inherited create(true); // CreateSuspended = true
freeOnTerminate := true;
end;
Nun frage ich mich aber ... Wie kann ich vom Thread die Daten zur Klasse bekommen? Kann man da eine Art Notifikation absetzen?
Und wie kann ich dann aus der Klasse eine Notifikation in Richtung Anwendung schicken um zu signalisieren das neue Daten zur Bearbeitung zur Verfügung stehen?
Hat da jemand eine gute Idee zu?