002
25.09.2005, 18:13 Uhr
~Lars
Gast
|
Hi,
MFC-Threads gehen unter Borland auch. Einfacher ist aber das VCL-Objekt TThread. Einfach über "Datei/neu..." -> Thread-Objekt wählen, ganz normal die Member-Funktionen programmieren, fertig.
Im Hauptprogramm per "new" den Thread erzeugen. Dem Konstruktor übergibst Du ein bool, das true ist, wenn der Thread schlafend (suspended) erzeugt werden soll, er läuft dann erst los, wenn Du ihn mit $threadobjekt->Resume () aufweckst; ist das bool == false, läuft er gleich los, der VCL-Thread.
Die Methode "Execute" wird aufgerufen beim Start, hier mußt Du solange kreiseln, bis der Thread beendet wird, was passiert, wenn die Methode komplett abgearbeitet ist. Also am besten eine Schleife while (!Terminated) { ... } für die Arbeit.
Das wars eigentlich; es gibt normalerweise keine Probleme, es sei denn, Du versuchst Datenaustausch mit dem Hauptprogramm über die VCL, dafür gibt es die function "synchronize". Auf single-cpu-Systemen gibt es normalerweise auch ohne synchronize keine Probleme, auf Mehrprozessorrechnern aber sehr wohl.
Die Hilfe zum VCL-Thread-Objekt ist ziemlich ausführlich, guckst Du darein.
Viele Grüße Lars |