Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 

Re: non-vcl Thread innerhalb einer Klasse deklarieren

  Alt 3. Aug 2007, 10:18
Warum so kompliziert? Bei BeginThread kann man doch einen Parameter übergeben. Man legt einfach eine Funktion (wie laut dokumentation beschrieben) an und nutzt den Parameter um die Instanz mitzugeben.

Delphi-Quellcode:
TMyClass = class
  private
    procedure ThreadProc();
  public
    procedure callThread();
  end;

[...]

{global functions}
function GlobalThreadProc(Ptr: Pointer): DWORD;
begin
  TMyClass(Ptr).ThreadProc();
end;

{class methods}
procedure TMyClass.ThreadProc();
begin
  //Place Thread-code here
end;

procedure TMyClass.callThread();
begin
  tHandle := BeginThread([...], @GlobalThreadProc, Self, [...]);
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat