also das problem, wie ich mir sagen lassen habe, lag am dynamischen
array das an die
api funktion übergeben wird, folgender
code funktionier nun anscheinend:
Delphi-Quellcode:
procedure TMainForm.LunchThreads;
var
i, hndlArraylength: integer;
Mylist: TStringlist;
hndlArray : Array[0..63] of THandle;
begin
...
//prüfen ob threads laufen und stringliste laden
...
Setlength(ThreadArray, 64));
while Mylist.Count > 1 do
begin
for i := 0 to length(ThreadArray) - 1 do
begin
ThreadArray[i] := TMyThreads.Create(true);
hndlArray[i] := ThreadArray[i].Handle;
ThreadArray[i].FIndex := i;
ThreadArray[i].FValue := Mylist[0];
ThreadArray[i].Priority := tpIdle;
ThreadArray[i].FreeOnTerminate := True;
ThreadArray[i].Resume;
if Mylist.Count > 1 then
Mylist.Delete(0)
else
break;
end;
WaitForMultipleObjects(64, @hndlArray, True, 20000);
end;
Mylist.Free;