AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Arbeiten mit TThreadList

Ein Thema von Captnemo · begonnen am 7. Aug 2013 · letzter Beitrag vom 25. Jun 2014
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#1

Arbeiten mit TThreadList

  Alt 7. Aug 2013, 09:36
Delphi-Version: XE2
Ich schreibe gerade an einem Programm, in dem eine vom Benutzer festgelegte Anzahl an Threads starten sollen. Da ich bei Programmende alles schön wieder aufräumen will, muß ich ja dafür sorgen, dass alle Threads brav beendet sind.
Kann ich dafür die TThreadList verwenden?

Funktioniert das ähnlich wie eine TObjectList?
Also TObject->TObjectList und TThread->TThreadList?

Gibt's irgendwo ein schickes Tutorial, dass man auch versteht, wenn bisher wenig mit TThreads gearbeitet hat?

Oder gibt's eine bessere oder einfachere Möglichkeit, die TThreads in einer Liste zu verwalten, und diese beim Beenden abzuarbeiten.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Arbeiten mit TThreadList

  Alt 7. Aug 2013, 09:40
Einfach in eine TObjectList packen, aber beim Aufräumen die Threads beenden, auf Fertigstellung warten und dann wegwerfen.

Eine Delphi-Referenz durchsuchenTThreadList ist dafür gedacht, dass mehrere Threads in diese Liste greifen können (und zwar mit Delphi-Referenz durchsuchenTThreadList.LockList)

Achtung: Das Codebeispiel bitte nur unter dem Aspekt TThtreadList betrachten, ansonsten ist das ein absolutes NoGo-Beispiel
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 7. Aug 2013 um 09:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#3

AW: Arbeiten mit TThreadList

  Alt 7. Aug 2013, 09:46
Ah, cool. Danke für deine schnelle Hilfe.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Arbeiten mit TThreadList

  Alt 7. Aug 2013, 10:13
Was willst Du denn mit der Begrenzung erreichen? Etwa eine Steuerung der Auslastung?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#5

AW: Arbeiten mit TThreadList

  Alt 7. Aug 2013, 10:28
Was willst Du denn mit der Begrenzung erreichen? Etwa eine Steuerung der Auslastung?
Was für eine Begrenzung?
Ich will nur wissen, wie viele Thread laufen, damit ich die bei Programmende sauber beenden kann.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Arbeiten mit TThreadList

  Alt 7. Aug 2013, 10:33
... in dem eine vom Benutzer festgelegte Anzahl an Threads starten sollen
Daher kam meine Frage.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#7

AW: Arbeiten mit TThreadList

  Alt 7. Aug 2013, 11:52
... in dem eine vom Benutzer festgelegte Anzahl an Threads starten sollen
Daher kam meine Frage.
Genau genommen geht es darum, seriell angeschlossene Geräte abzufragen. Wieviele angeschlossen werde, dass wird vom User eingestellt. Es können also 3 aber auch 10 sein. Ich selbst begrenze die Anzahl nicht.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.753 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Arbeiten mit TThreadList

  Alt 7. Aug 2013, 12:40
... in dem eine vom Benutzer festgelegte Anzahl an Threads starten sollen
Daher kam meine Frage.
Genau genommen geht es darum, seriell angeschlossene Geräte abzufragen. Wieviele angeschlossen werde, dass wird vom User eingestellt. Es können also 3 aber auch 10 sein. Ich selbst begrenze die Anzahl nicht.
Die Anzahl der quasi parallel laufenden Threads sollte m.E. abhänging von der Anzahl der CPUs/der cores sein und nicht zwingend von der Anzahl der abzufragenden Geräte.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#9

AW: Arbeiten mit TThreadList

  Alt 7. Aug 2013, 13:08
... in dem eine vom Benutzer festgelegte Anzahl an Threads starten sollen
Daher kam meine Frage.
Genau genommen geht es darum, seriell angeschlossene Geräte abzufragen. Wieviele angeschlossen werde, dass wird vom User eingestellt. Es können also 3 aber auch 10 sein. Ich selbst begrenze die Anzahl nicht.
Die Anzahl der quasi parallel laufenden Threads sollte m.E. abhänging von der Anzahl der CPUs/der cores sein und nicht zwingend von der Anzahl der abzufragenden Geräte.

Grüße
Klaus
Also darüber brauche ich ganz sicher keine Sorgen machen. Zum einen werde niemals mehr als 12 Geräte angeschlossen (das ist in diesem Anwendungsfall mal absolut sicher), und zum anderen liefern die Geräte nur in Intervallen von 10 Sekunden Daten, evtl. sogar mit viel größeren Abständen.
Dem zur Folge für meine Zwecke völlig okay. Ich hab's grad mal mit 20 Threads auf einem 1 Prozessorsystem getestet und hatte 0,1% Auslastung. Laufen wird es nachher auf einem 8-Core-System.

[OT on]
Hey, danke für eurer Interesse. Aber mir ging es tatsächlich um die Frage, die schon im ersten Thread stand. Nicht darum, ob und warum man die Threadanzahl begrenzen sollte. Solche Diskussionen ziehen diesen Beitrag nur unnötig in die Länge und nützen am Ende keinem. Außerdem wären dafür noch ganz andere Informationen über den Sinn und Zweck des Programm und der Threads notwendig.

Jetzt aber nicht gleich beleidigt sein, okay

Daniel hatte es für mich mit seiner Antwort schon wie immer sehr treffend auf dem Punkt gebracht.

[OT off]
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Arbeiten mit TThreadList

  Alt 7. Aug 2013, 13:13
Daniel hatte es für mich mit seiner Antwort schon wie immer sehr treffend auf dem Punkt gebracht.
Wann hat der denn hier geantwortet?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 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