Einzelnen Beitrag anzeigen

endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#13

Re: Prüfen wann alle Threads beendet wurden

  Alt 12. Nov 2004, 20:05
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;
  Mit Zitat antworten Zitat