Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Dalai,
4. Nov 2017
Sorry, falls der Eindruck entsteht, ich würde spammen, aber ich glaube, ich hab's. Außerdem fiel mir auf, dass OnTerminate mittels Synchronize gerufen wird, das selbstdefinierte Event OnPingDone aber nicht. Das hab ich gleich korrigiert, sonst gibt's später böse Fehler.
Thread:
type
TPingThread = class(TThread)
private
FClient: TClient;
FOnPingDone: TNotifyEvent;
...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Dalai,
4. Nov 2017
Nach ein bisschen Umbau und der Nutzung nur jener Klasse, die wirklich nötig ist, sieht es nun so aus:type
TPingThread = class(TThread)
private
FClient: TClient;
FOnPingDone: TNotifyEvent;
protected
procedure Execute; override;
public
constructor Create(const AHost: string);
destructor Destroy; override;
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Dalai,
4. Nov 2017
Diese Frage steht mit der bereits genannten Redundanz in Verbindung, und ist eine Sache, die mir auch nicht gefällt. Im Prinzip könnte der Thread alles mit der Instanz der Klasse machen. Genau das wollte ich verhindern und nur die Methode Ping in den Thread geben. Aber ich werd mir mal das Klassendesign anschauen, ob ich da etwas weiter unten ansetzen kann. TComplexClass beinhaltet ein paar...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Dalai,
4. Nov 2017
Dein Hinweis war möglicherweise der Schubs in die richtige Richtung. Du meinst also etwa in der Art:type
TPingThread = class(TThread)
private
{ Private-Deklarationen }
FFB: TComplexClass;
protected
procedure Execute; override;
public
constructor Create(const AHost: string);
destructor Destroy; override;
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Dalai,
3. Nov 2017
Dann versuche ich mal, daran etwas zu ändern.
Das ist mir schon klar. Aber sowas wie das - also eine Erzeugung von TComplexClass innerhalb des Threads - will ich vermeiden, weil das einen kompletten Umbau bedeuten würde. FObject ist mit Absicht ein Attribut von TfmMain, weil in einigen von dessen Methoden noch eine ganze Reihe anderer Operationen ausgeführt werden, Eigenschaften abgefragt etc...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Dalai,
3. Nov 2017
Hallo *.*,
um die Reaktionsfähigkeit eines meiner Programme zu verbessern, denke ich gerade darüber nach, Threads zu verwenden, um bestimmte Funktionen von diesem ausführen zu lassen. Die Situation stellt sich folgendermaßen dar:type
TfmMain = class(TForm)
procedure FormCreate(Sender: TObject);
private
FObject : TComplexClass;
end;
implementation