Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Thread-Funktionsaufrufe (https://www.delphipraxis.net/112401-thread-funktionsaufrufe.html)

Dubby.Ous 20. Apr 2008 14:18


Thread-Funktionsaufrufe
 
Hi,

versuche mich gerade dran aus einem Main-Thread Funktionen aufzurufen, die selbst in Threads ablaufen. Soweit einfach, aber das knifflige ist, daß ich ja auch verschiedene Parameter an die Fcn übergeben muß. Was würdet Ihr machen?? :gruebel:

Meine bisherigen Rookie-Ideen:
1. Jede Fcn nen eigenen (runtime?-) Thread createn lassen und über globale Variable dessen Zustand (terminated) erfassen.
2. Ein einzelner Zweit-Thread nimmt alle fcn-Aufrufe entgegen und arbeitet sie ab. Damit das Problem der Parameterübergabe... Für jeden benutzten Paramter eine globale Var?
3. Kombination aus beiden: Jede Fcn legt ihren Parameter-Stack in einen Puffer und der Zweit-Thread muß sich die Variablen daraus auseinander dröseln??
4. Ein einzelner Zweit-Thread mit "Variant"-Parametern?

Gibt's da nicht eine BRAUCHBARE Methode?
:?: :?: :?: :?:

Danke für Hilfe!

dominikkv 20. Apr 2008 14:53

Re: Thread-Funktionsaufrufe
 
Du erstellst eine neue Klasse, leitest diese von TThread ab, überschreibst den Constructor mit deinen eigenen Parametern und lässt den Thread laufen.
Alternativ kannst du den Thread auch suspended erstellen, über Propertys deine Parameter einstellen und den Thread resumen.

Luckie 20. Apr 2008 15:37

Re: Thread-Funktionsaufrufe
 
Oder wnn du dierekt die WinAPI benutzt, erstell einen Record für die Parameter und übergib BeginThread einen Zeiger auf den Record. Denk aber daran, dass die bei Beendigung des Threads den Speicher wieder freigibst. Deteils dazu siehe hier: http://delphitutorials.michael-puff.de

Dubby.Ous 20. Apr 2008 15:58

Re: Thread-Funktionsaufrufe
 
@Luckie & @Dominikkv

Vielen Dank für die Antworten! Hat mir schon geholfen!! Jede Fcn als eigenen Thread zu schreiben werde ich sein lassen. Es wird ein "universal"-Thread werden, dem ich einen ptr auf RECORD übergeben (per API call). Thx to Luckie - tolles Tutorial hast Du da gemacht! :thumb:

Greez!


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz