Hi Leute.
Ich habe mich ein wenig in Threading eingearbeitet, nun habe ich eine Technische Frage.
Wie macht man es richtig mit den Parametern.
Hier zwei Beispiele, beide funktionieren, meine Frage dazu, was davon ist richtig, bzw. besser.
Ich poste nur das relevante.
Erster Beispiel. Die Variable wird als Public deklariert und in Unit1 einfach gesetzt.
Delphi-Quellcode:
//Unit Thread
type
TMyThread =
class(TThread)
private
Wert :
String;
// Werte der nur im Thread benutzt wird
Bezeichnung :
String;
// Werte der nur im Thread benutzt wird
procedure UpdateStaus;
procedure Finished;
procedure Abort;
public
SSL : Boolean;
// Werte der von der UNIT1 übernommen wird
protected
procedure Execute;
override;
end;
implementation
...
...
//in der UNIT1
...
...
Thread := TImageShackThread.Create(True);
Thread.SSL := False;
Thread.FreeOnTerminate := True;
Thread.Resume;
...
Oder eine zweite Methode
Delphi-Quellcode:
//Und UNIT Thread
type
TMyThread =
class(TThread)
private
Wert :
String;
// Werte der nur im Thread benutzt wird
Bezeichnung :
String;
// Werte der nur im Thread benutzt wird
SSL : Boolean;
// Werte der nur im Thread benutzt wird
procedure UpdateStaus;
procedure Finished;
procedure Abort;
public
procedure SetSSL(ThreadSSL : Boolean);
// Procedure die den Wert übernimmt
protected
procedure Execute;
override;
end;
implementation
...
...
procedure TMyThread.SetSSL(ThreadSSL : Boolean);
// Damit hab ich mein Wert im Thread zur Verfügung
begin
SSL := ThreadSSL;
end;
...
...
...
//und in der UNIT1
...
...
Thread := TMyThread.Create(True);
Thread.SetSSL(False);
Thread.FreeOnTerminate := True;
Thread.Resume;
...