Hallo,
ich habe ein Problem mit BeginThread(), vielleicht kannt mir jemand helfen.
Nun, ich starte ein Thread mit BeginThread(), zu veranschaulichung ein stückchen Code:
Delphi-Quellcode:
TParamRecord = record
Nr : Integer;
end;
//[.....]
procedure TForm1.Button1Click(Sender: TObject);
var
id : LongWord;
Params: TParamRecord;
begin
for I := 1 to 50 do begin
Params.Nr = I;
BeginThread(nil,
0,
Addr(StarThread),
Addr(Params),
0,
id);
end;
end;
Die Funktion für die Threads sieht folgendermaßen aus:
Delphi-Quellcode:
function StarThread(Paramter: Pointer): Integer;
var
Params : ^TParamRecord;
begin
Params := Paramter;
Form1.Memo1.Lines.add('Angekommen mit '+IntToStr(Params.Nr));
end;
Nun gut, dass Problem ist, dass der Wert
Params.Nr in dem Thread immer eine ganz komische Zahl ist.
Wenn ich die Threads nacheinander starte, dann kommen die Parameter richtig an.
Eine Beispiel Ausgabe in dem Memo wäre:
Zitat:
Angekommen mit 2010210153
An was könnte das liegen? Danke für jede Hilfe.
Gruss,
MArc