Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
12. Dez 2014
Das ist genau das, was ich mit meinem TTask Beispiel gezeigt habe :wall:
Die Sammler-Aufgabe läuft dauernd und erzeugt neue Verarbeitungs-Aufgaben, wenn da etwas auftritt.
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
12. Dez 2014
Nehmen wir mal an, du bekommst Schafe und die Schafe sollen entweder geschoren, gefüttert oder gestreichelt werden.
Dann hast du da einen SchafStreichelThread, einen SchafScherThread und einen SchafFütterThread und denen gibts du dann die Schafe, die du bekommst.
Ich sage dieser Ansatz ist komplett falsch.
Erstelle dir einen SchafStreichler, SchafScherer und SchafFütterer. Dann bringst...
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
12. Dez 2014
Ganz einfach dargestellt sowas?
TTask.Create(
procedure
var
LData : TDataContainer;
begin
while not Aufhören do
begin
if DatenGefunden( LData ) then
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
12. Dez 2014
Zuerst:
Du willst keinen Thread der sammelt, noch einen der berechnet!
Da gibt es eine Aufgabe des Sammelns und des Berechnens und diese beiden Aufgaben sollen in einem eigenen Thread-Kontext laufen.
Ist das ungefähr getroffen?
Forum: Object-Pascal / Delphi-Language
by Sir Rufo,
12. Dez 2014
Wenn wir uns darauf einigen können, dass der Thread nur ein Ausführungskontext ist und in dem Kontext soll eine Aufgabe erledigt werden, dann ja, dafür ist dann z.B. der ITask (wie passend von der Bezeichnung) da.
Und innerhalb eines ITask kann man auch weitere Tasks erzeugen. Alle Tasks kommen in eine Queue und werden dann in irgendeinem Thread-Kontext abgearbeitet.