![]() |
Selbe Funkion in TForm und TThread benutzen
Guten Abend,
ich schreibe eine Anwendung, die eine Aufgabe erledigt. Diese Aufgabe soll entweder im Hauptthread ausgeführt werden, oder in mehreren Unterthreads. Jetzt ist meine Frage, muss ich die Funktion die die Aufgabe erledigt zwei mal definieren? Also einmal
Delphi-Quellcode:
und einmal
function TForm1.MeineFunktion: Boolean;
Delphi-Quellcode:
oder kann ich diese auch nur einmal ohne TForm1 und Thread1 definieren und übergebe die Funktion dann irgendwie?
function TThread1.MeineFunktion: Boolean;
|
AW: Selbe Funkion in TForm und TThread benutzen
Pauschal kann man das nicht sagen ...
Hat diese Funktion irgendwas mit der Form zu schaffen (wird dort auf etwas von der Form zugegriffen)? Wenn ja, dann nicht im Thread, wenn nein, warum ist die als Methode der Form definiert? |
AW: Selbe Funkion in TForm und TThread benutzen
Ich hab mich sehr blöd ausgedrückt, aber deine Anmerkungen sind natürlich richtig.
Ich habs aber schon lösen können.
Delphi-Quellcode:
So kann ich die Funktion von einem ButtonOnClick ohne Probleme aufrufen, und beim Thread kann ich die Funktion einfach festlegen.
type
FMeineFunktion = function (Param1: String; Param2: String): Boolean; TThread1 = class(Thread) protected procedure Execute; private MeineFunktion: FMeineFunktion; ... function MeineFunktion (Param1: String; Param2: String): Boolean; begin // Mache irgendwas end; |
AW: Selbe Funkion in TForm und TThread benutzen
Normalerweise packt man das in eine eigene Klasse. Dann können TForm1 und TThread1 darauf zugreifen. Wird hier mit gemeinsamen Daten gearbeitet, müssen diese synchronisiert werden, d.h. die Klasse sorgt dafür, das immer nur einer/eine (PC! :mrgreen:) exklusiven Zugriff auf die Daten hat.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz