Einzelnen Beitrag anzeigen

Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Demo-Projekt zu TMyThreads Ping

  Alt 14. Nov 2004, 19:56
Nun habe ich ein Problem. Bei einer geringen Anzahl an Threads funktioniert alles problemlos aber sobald die Anzahl ein wenig zunimmt, beenden die Threads nicht richtig.

Woran kann das liegen und was kann man dagegen machen??

Delphi-Quellcode:
procedure TForm1.btnStartThreadsClick(Sender: TObject);
  var i : Integer;
begin
  // Evtl. Threads stoppen
  if length(ThreadArray) > 0 then
    for i := 0 to length(ThreadArray) - 1 do
      ThreadArray[i].Terminate;

  Listview1.Clear;
  SetLength(ThreadArray,5);
  for i := 0 to length(ThreadArray) - 1 do begin
    with Listview1.Items.Add do
      Caption := '..loading';

    // 1. Thread erstellen (Pausiert)
    // 2. ListView Index übergeben
    // 3. Priorität übergeben
    // 4. Automatische Speicherfreigabe aktivieren
    // 5. Erstellten Thread starten

    ThreadArray[i] := TMyThreads.Create(True);
    ThreadArray[i].FIndex := i;
    ThreadArray[i].FIPValue1 := 192;
    ThreadArray[i].FIPValue2 := 168;
    ThreadArray[i].FIPValue3 := 0;
    ThreadArray[i].FIPValue4 := i+1;
    ThreadArray[i].Priority := tpIdle;
    ThreadArray[i].FreeOnTerminate := True;
    ThreadArray[i].Resume;
  end;
end;
// Ich nehme mal an das hängt damit zusammen, dass man nicht gleichzeitig soviele Pings machen kann...
Christian Reber
  Mit Zitat antworten Zitat