Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: TThread in Liste sauber aufräumen

  Alt 12. Feb 2010, 16:16
Hallo Sirius,

Zitat von sirius:
1. Du musst den Destructor schon überschreiben.
Das habe ich zwischenzeitlich schon selbst gemerkt und behoben.

Zitat von sirius:
2a. Warum benutzt du eine ThreadList, wenn du diese nur im MainThread verwendest ...
Es tut mir leid, aber diese Frage verstehe ich nicht?
Mein Fernziel ist es später, das jeder Thread seine eigene Datei überwacht. Es sind Textdateien. In der Textverarbeitung ist Autosave und sonstwas an und wir haben ein sehr langsames VPN. Der Thread soll die Datei nach TEMP kopieren, mit dem verknüpften Programm dort starten und nach dem Ende wieder an den Ursprungsort zurück verfrachten.
-> Ich dachte dafür wäre ein Thread wie geschaffen. Hier teste ich doch nur!

Zitat von sirius:
2b. Warum benutzt du eine ThreadList, wenn du sowieso nicht die eigentliche Funktionalität der ThreadList (Methode: LockList) verwendest?
Das verstehe ich auch nicht. Ich habe nachgelesen und bin zu der Meinung gelangt, dass LockList "nur" dafür sorgt, dass nicht alle gleichzeitig auf die Liste zugreifen können. Ich baue das aber noch ein.

Zitat von sirius:
Edit2: Und außerdem löschst du die Listenelemente gleich zweimal in CleanUp und in FormDestroy.
Das verstehe ich ja auch nicht. Denn das Element müsste in Cleanup gelöscht worden sein. Dann dürfte es aber bei FormDestroy nicht mehr existieren, oder?

Mein Problem ist auch nicht, dass es nicht klappt, sondern die "komische" Fehlermeldung:
Thread-Fehler: Das Handle ist ungültig (6)
Und dass obwohl ich den Code aus meiner Fundstelle bis auf den Thread 1:1 abgeschrieben habe.

[edit]Mit 1:1 abgeschriebenem Code kommt schon beim Anlegen des Thread diese Fehlermeldung:
Exception der Klasse EAbstractError mit der Meldung 'Abstrakter Fehler'.[/edit]

Bitte nicht hauen: Es gibt bei TObjectList die Eigenschaft OwnsObjects. Wenn ich die auf True setze, dann müssten doch die Threads beim Beenden mit platt gemacht werden, oder?

Gruß und Danke, Alex
Alex Winzer
  Mit Zitat antworten Zitat