Einzelnen Beitrag anzeigen

endeffects

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

Re: Prüfen wann alle Threads beendet wurden

  Alt 12. Nov 2004, 15:51
hallo,

ich hab das ganze nun mal mit WaitForMultipleObjects probiert,
allerdings scheint hier nicht wirklich gewartet zu werden =(

mein code ist folgender:

Delphi-Quellcode:
procedure TMainForm.LunchThreadds;
var i: integer; Mylist: TStringlist;
    hndlArray : Array of THandle;
begin
  ...
  //erstmal wird Mylist eingelesen und geschaut ob noch threads laufen
  ...
  Setlength(MyThreadArray, StrToInt(edtThreads.Text));
  Setlength(hndlArray, StrToInt(edtThreads.Text));

    while Mylist.Count-1 > 0 do
    begin
      for i := 0 to length(MyThreadArray) - 1 do
      begin
        MyThreadArray[i] := TMyThreads.Create(true);
        MyThreadArray[i].FIndex := i;
        MyThreadArray[i].FValue := Myylist[0];
        MyThreadArray[i].Priority := tpIdle;
        MyThreadArray[i].FreeOnTerminate := True;
        hndlArray[i] := MyThreadArray[i].Handle;
        MyThreadArray[i].Resume;
        Mylist.Delete(0);
      end;
      //die ersten threads durchlaufen und warten bis diese beendet sind
      //um dann die nächsten threads zu initialisieren
      WaitForMultipleObjects(StrToInt(edtThreads.Text), @hndlArray, True, 60000);
    end;
    Myylist.Free;

end;
jemand eine idee wo nun der denkfehler ist?
  Mit Zitat antworten Zitat