Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Thread kreieren und parameter übergeben (https://www.delphipraxis.net/86305-thread-kreieren-und-parameter-uebergeben.html)

hirnstroem 12. Feb 2007 14:43


Thread kreieren und parameter übergeben
 
'loha Folks,

ich stehe gerade voll auf dem Schlauch...

Ich möchte gerne einen Thread kreieren und ihm einen Parameter übergeben, mit welchem er dann arbeiten soll, weiss aber nicht wie ich das hinbekomme.


Delphi-Quellcode:
  TDBPictureThread = class(TThread)
  public
    procedure Execute(FAddress: String); // die Adresse wäre der zu übergebende Parameter
  end;

Angel4585 12. Feb 2007 14:48

Re: Thread kreieren und parameter übergeben
 
Zitat:

Zitat von hirnstroem
Delphi-Quellcode:
  TDBPictureThread = class(TThread)
  public
    procedure Execute(FAddress: String);override; // die Adresse wäre der zu übergebende Parameter
  end;

probiers mal so ;)

Jelly 12. Feb 2007 15:00

Re: Thread kreieren und parameter übergeben
 
Zitat:

Zitat von Angel4585
probiers mal so ;)

Das wird so nicht gehen, da die Execute in der TThread Klasse als abstract definiert ist, und auch von aussen nie aufgerufen werden soll. Stattdessen steht die Resume Methode zur Verfügung. Execute darf keine Parameter haben. Und Resume ist ebenfalls nicht als virtuell definiert.

Statt die Parameter in Execute (oder Resume) zu übergeben, würde ich diese gleich dem constructor mitgeben:

Delphi-Quellcode:
interface
TDBPictureThread = class(TThread)
private
    FAddress : string ;
public
    constructor Create (CreateSuspended : boolean ; FAddress: String);overload;
end;

implementation
constructor TDBPictureThread.Create (CreateSuspended : boolean ; FAddress: String) ;
begin
     inherited Create (CreateSuspended) ;
     // Hier was mit FAddress machen, z.B. in einer privaten Variablen speichern:
     Self.FAddress := FAddress ;
end ;

hirnstroem 12. Feb 2007 15:03

Re: Thread kreieren und parameter übergeben
 
Hallo Jelly,

das ist es! Vielen Dank! (Der Parameter bei Execute war mehr symbolisch gedacht.)

Grüsse
hirnstroem

Angel4585 12. Feb 2007 15:08

Re: Thread kreieren und parameter übergeben
 
hoppala mein Fehler.. ich machs au immer über den Konstruktor, dachte nur das es über Execute vllt au geht :duck:

DP-Maintenance 12. Feb 2007 15:13

DP-Maintenance
 
Dieses Thema wurde von "Jelly" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Ist wohl doch eher eine Delphi spezifische Frage. Dank an Thorben77.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 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