![]() |
Threads leaken Speicher
Liste der Anhänge anzeigen (Anzahl: 1)
Tach, oder besser, Abend.
Bastel grad ein Programm, das von Dateien Hash-Summen erstellen soll und bei gleichem Inhalt löschen/verschieben/etc. Bei der Hash-Berechnung arbeite ich mit Threads. Einer, der beim Klicken auf den Start-Button anspringt und dann alle anderen wie grad nötig, spawnt. Läuft alles bestens (vor allem 20x schneller als vorher ohne Threads :-D ), ABER: Wenn ich auf Schließen klicke, bekomme ich entweder einen EOSError oder eine EAccessViolation. Nicht mehr schön, das. Da ich aber grad zum ersten Mal mit Threads rummache, könnte ich dazu Hilfe gut brauchen. Ich lad mal das komplette Projekt hoch, weil ich keinen Plan habe, wie ich den Fehler einkreisen könnte. Tut mir leid wegen der äußerst "gelungenen" Kompo-Namen wie Edit1, hab das eben grad zwischen Tür und Angel gecoded. |
Re: Threads leaken Speicher
ich hab das projekt noch nicht runtergeladen deswegen frag ich einfach. Greifst du aus den Threads auf das Formular zu, zum beispiel auf Editfelder etc.? Wenn ja, syncronisierst du den zugriff dann mit syncronize?
(kanns leider nicht ausführen da ich die Jedy-kombos nicht installiert hab. Aber so richtig sehe ich da auch keine threadklasse etc...) |
Re: Threads leaken Speicher
Ich greife nicht auf das Formular zu, in uhashthreads.pas habe ich ein Event onFinished deklariert. Das hab ich im Formular dann verknüpft und brauch so kein Synchronize.
Die Threadklasse ist Thashthread, auch in uhashthreads.pas . PS: Der Timer ist nur dazu da, ständig Infos über Anzahl laufender Threads und der noch übrigen bzw. abzuarbeitenden Dateien zu liefern. |
Re: Threads leaken Speicher
Wenn du zum ersten mal mit Threads arbeitest, dann kuck dir mal mein Tutorial dazu an:
![]() |
Re: Threads leaken Speicher
Cool, ein Tutorial :-D
Sieht richtig professionell aus, mit was hast du das geschrieben? Meine Vermutung: LyX/TeX/etc. Werd ich mich mal durchbeißen. |
Re: Threads leaken Speicher
Weder noch. OpenOffice.
|
Re: Threads leaken Speicher
Hm, denk denk. Openoffice kann "richtige" Inhaltsverzeichnisse? Verdammt, wie war das? Der Anwender nutzt max. 5% von Wort (bzw OpenOffice). Ich sollte mich wirklich mehr damit befassen.
|
Re: Threads leaken Speicher
Sicher kann es das. Unterdokumente und globale Dokumente gehen auch und die habe ich auch genutzt. Aber jetzt wird es offtopic.
|
Re: Threads leaken Speicher
Hab grad gemerkt, dass meine CPU-Auslastung auf 100% hochgeht und da bleibt, bis ich das Prog schließe. Kann es sein, dass ich irgendwo meine Threads nicht richtig beendet habe?
|
Re: Threads leaken Speicher
Zitat:
:oops: Im ersten Posting ist ja der Quelltext. :roll: Hm, nicht sehr schön, da sind mindestens zwei Komponenten dabei, die ich nicht habe und mit den Jedi Thread Komponenten kenne ich mich nicht aus. Es dürfte aber eine Hilfe, wenn nicht sogar Demos dazu geben. |
Re: Threads leaken Speicher
Ist keine Jedi-Thread-Kompo. Ist von Indy. Hab ich als Erstes benutzt, da ich, wie gesagt, das erste mal mit threads arbeite und mir da was visuelles lieber war.
|
Re: Threads leaken Speicher
Hm, das ist seltsam. Ich hab jetzt mal frech von einem Thread-Beispiel-Programm kopiert, aber es geht immer noch nicht. Die Threads werden einfach nicht freigegeben, weder über Terminate noch über Free, obwohl FreeOnTerminate auf True steht. Meine Vermutung ist, dass ich Mist programmiert hab in meiner Thread-Klasse. Kann da mal jemand draufgucken? Fände ich echt nett :-D
|
Re: Threads leaken Speicher
if assigned(Fonterminating) then Fonterminating(Self,Ffilename,thehashsum);
Self.Suspend; <-- das mal weglassen ( du willst ja net den thread schlafen legen wenn er beendet werden soll oder? ) eventuell auch mal das ereignis weglassen testhalber falls da was schief läuft bzw.. evtl fehlt ja ne synchronisation noch.. aber pass mit dem debuggen von threads auf.. mit breakpoints ;) da ist mir schon oft meine windows gui für mehrere minuten eingefrohren ( und im hintergrund hat windows ganz normal weiter gearbeitet ) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz