Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

AW: Thread in eigene Klasse einbinden?

  Alt 16. Dez 2010, 17:10
Eigentlich finde ich es schöner, eine Funktion zu haben, die eben als Thread läuft, als dafür direkt eine Klasse zu schreiben
Ein Thread läuft immer in einem bestimmten Kontext.
Er braucht Eingabedaten und liefert oder befüllt Ausgabedaten.
Wenn man einen Thread nur als Funktion sieht, dann "belügt" man sich selbst, weil der Kontext irgendwo als globale Variablen vorhanden sein muss.

Ganz anderst ist das bei der Klasse TThread.
Wenn man von TThread ableitet, dann sollte man darauf achten alle Eingabe- und Ausgabedaten als Properties anzulegen.
Beispiel:
Delphi-Quellcode:
// Thread-Klasse zur Berechnung der Mandelbrot Menge
TMandelbrotThread = class(TThread)
public
  procedure Execute; override;
   // Eingabeparameter
   property Ziel : TRect; // Bildausschnitt
   property xmin, xmax, ymin, ymax : double; // für Brechnung des Apfelmänchens benötigt
   property ColorTable : TColorTable; // Einfärbeschema

   // Ausgabeobjekt
   property Bitmap:TBitmap;
end;
Bei der Threadklasse siehst du genau, was der Thread an Input braucht und wohin das Ergebnis geht.
Sauber und Objektorientiert!
Würde es die Thread-Klasse nicht schon geben, dann müsste man sie erfinden.
Andreas
  Mit Zitat antworten Zitat