Einzelnen Beitrag anzeigen

Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#10

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

  Alt 28. Nov 2004, 15:57
Zitat von Luckie:
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 := 'Luckie 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.
also dein tutorial kenn ich. mit dem hab ich mir das ja angeeignet. und letztenendes ist das was ich mache doch genau das gleiche wie du schriebst oder ausser dass es sich bei mir nicht um eine globale variable handelt... muss es das denn?
  Mit Zitat antworten Zitat