hi,
ich möchte mehrere Threads eines Typs gleichzeitig ausführen.
dazu habe ich mir überlegt:
ich schreibe mir ganz normal meinen Thread als ableitung von TThread
dann mache ich mir nen array davon und erstelle in ner schleife alle und führe sie aus.
das ganze sieht dann so aus:
Delphi-Quellcode:
Thr: array [1..Cnt] of TMyThread;
procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
begin
for i:=1 to Cnt do
begin
Thr[i]:=TMyThread.Create(True);
//Noch paar Property setzen
Thr[i].Execute;
ShowMessage('Thread '+IntToStr(i)+' Executed');
end;
end;
interessanterweise wird aber nur ein Thread erstellt und ausgeführt...(Cnt ist natürlich >1
)
Anhaltspunkte:
- ShowMessage erscheint nicht
- Ausgabe (via Synchronize) kommt nur vom ersten Thread
-
Access Violation beim freigeben ab dem zweiten Thread...
warum macht der nicht einfach in der schleife weiter?