Einzelnen Beitrag anzeigen

IMPEGA

Registriert seit: 19. Jan 2008
Ort: Brhv
83 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Parameter an Thread übergeben

  Alt 8. Sep 2013, 10:53
Delphi-Version: 5
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;
...
  Mit Zitat antworten Zitat