Ich versuche eine Procedure in einen Thread zustarten. Dazu verwende ich diesen Code:
Delphi-Quellcode:
var
COUNTER: Integer = 0;
////////////////////////////////////////////////////////////////////////////////
procedure StarteThread;
var
I: Integer;
begin
I :=0;
for I := 0 to 100 do begin
Form1.ListBox1.Items.Add('Thread: '+IntToStr(COUNTER)+' Schleifendurchlauf: '+IntToStr(I));
SendMessage(Form1.ListBox1.Handle,WM_VSCROLL,SB_BOTTOM,0);
Sleep(100);
end;
end;
////////////////////////////////////////////////////////////////////////////////
procedure TForm1.Button1Click(Sender: TObject);
var
TID: cardinal;
begin
Inc(COUNTER, 1);
CreateThread(0,0,@StarteThread,0,0,TID);
end;
////////////////////////////////////////////////////////////////////////////////
Wenn ich jetzt mehrfach Button1 drücke, werden mehrere Threads gestartet, die auch abgearbeit werden. Ich möchte jetzt aber auch noch in der Listbox sehen, welcher "Schleifendurchlauf" zu welchem (gestarten) Thread gehört. So wie das Programm derzeit aufgebaut ist wird mir der "COUNTER" nicht richtig angezeigt.