Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Demo-Projekt zu TMyThreads Ping (https://www.delphipraxis.net/33908-demo-projekt-zu-tmythreads-ping.html)

CReber 14. Nov 2004 16:03


Demo-Projekt zu TMyThreads Ping
 
Liste der Anhänge anzeigen (Anzahl: 1)
Lange, wirklich lange habe ich nach einem Demo-Projekt für TMyThreads gesucht. Nach einer mehrstündigen Such- / Lese- / Verstehaktion habe ich von Luckie etwas brauchbares entdeckt.

Ich denke gerade für Anfänger ist eine Demo zum pingen von PCs sehr praktisch, da gerade dort die meisten in den Kontakt mit Threads kommen. Ich habe Luckies Demo ein wenig umgeschrieben und statt dem hochzählen ein Ping eingebaut. Ich hatte selber wenig bis gar keine Ahnung, wie man Threads verwendet, aber dafür wusste ich wie sie funktionieren.



Im Namen der Verzweifelten ;)


PS: Wie man die maximale Anzahl an Threads handelt, weiß ich aber auch noch nicht ;)

CReber 14. Nov 2004 18:56

Re: Demo-Projekt zu TMyThreads Ping
 
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...

CReber 15. Nov 2004 19:10

Re: Demo-Projekt zu TMyThreads Ping
 
*schieb


Es ist echt wichtig für mich ! Ich möchte nur gerne wissen wie ich eine Maximal Anzahl der gleichzeitigen Threads angebe... Danke


// Tut mir leid ich hab den Fehler selber gefunden. Könnte mich treten für meine Dummheit. 260 IPs testen und eine Byte Variable verwende *dong


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz