Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Variable an Thread übergeben... oder auch nicht!?

  Alt 27. Nov 2004, 19:43
Guck dir mein Threading Tutorial an. In den Demos zeige ich, wie man Parameter an Threads übergibt.

Bitte nicht CreateThread nutzen. Und die Thread-Funktion nicht als stdcall deklarieren.

Delphi-Quellcode:
type
  TThreadParams = record
    MyInt: Integer;
    MyString: String[255];
  end;
  PThreadparams = ^TThreadParams;

[..]

function ThreadFunc(p: Pointer): Integer;
var
  i: Integer;
  s: String;
begin
  i := PThreadParams(p)^.MyInt;
  s := PThreadParams(p)^.MyString;

  [..]
  
  FreeMem(p, sizeof(TThreadParams));
end;

[..]

procedure Foobar;
var
  ThreadParams: PThreadParams
begin
  GetMem(ThreadParams, sizeof(TThreadParams));
  ThreadParams.MyInt := 5;
  ThreadParams.MyString := 'Meflin ist doof.';
  hThread := BeginThread(0, nil, @ThreadFunc, ThreadParams, ... );
  if hThread <> 0 then
  begin
    ...;
    CloseThread(hThrerad);
end;
Mal so auf die Schnelle ohne Compiler in die Tasten gehauen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat