AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Workerthread: Der Diener im Hintergrund
Thema durchsuchen
Ansicht
Themen-Optionen

Workerthread: Der Diener im Hintergrund

Ein Thema von alzaimar · begonnen am 12. Jun 2007 · letzter Beitrag vom 23. Jun 2011
Antwort Antwort
Seite 3 von 8     123 45     Letzte »    
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

Re: Workerthread: Der Diener im Hintergrund

  Alt 14. Jun 2007, 13:12
Zitat von Daniel:
Zitat von alzaimar:
Ich kann meinen Beitrag oben nicht mehr editieren, weil er zu alt ist.

Kinderchen, so sagt doch was. Ich habe die Edit-Limitierung aus dieser Rubrik jetzt rausgenommen. *zupf*
Papi, hab ich, aber ich hab Onkel Matze Bescheid gesagt, oder pennt der noch?

Jut, dann werdick mal, gelle?

[edit]lethargische Unterstellungen hinzugefügt[/edit]
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Workerthread: Der Diener im Hintergrund

  Alt 14. Jun 2007, 22:28
Threadpool Version 0.1 fertig zum Testen und im 1.Post verfügbar.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#3

Re: Workerthread: Der Diener im Hintergrund

  Alt 15. Jun 2007, 12:30
Zitat von alzaimar:
Threadpool Version 0.1 fertig zum Testen und im 1.Post verfügbar.
Jau,
und da dab ich auch gleich auf einen Fehler, Prog einfach über Close-Button schliessen:
Delphi-Quellcode:
Destructor TWorkerThreadJobList.Destroy;
Begin
  Clear;
  fJobs.Free; <<< EListError: Listenindex überschreitet Maximum(0)
  CloseHandle(fSemaphore);
End;
Memory-Leak in Zeile 154 der csWorkerThreadPool.pas:
Delphi-Quellcode:
    For i := 0 To L.Count - 1 Do
      TWorkerThreadJob(L[i]).Free; <<<< hier
    L.Clear;
Memory-Leak in der finalization
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#4

Re: Workerthread: Der Diener im Hintergrund

  Alt 15. Jun 2007, 12:32
Zitat von alzaimar:
Die beiden Units (csWorkerThread und csWorkerThreadpool) verwenden teilweise die gleichen Bezeichner, sollten also nicht gemeinsam in einem Projekt verwendet werden.
Hab mir den Code noch nicht näher angesehen, aber lässt sich das nicht sinnvoller Weis zusammenführen ?
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Workerthread: Der Diener im Hintergrund

  Alt 15. Jun 2007, 12:42
Zitat von kalmi01:
Zitat von alzaimar:
Die beiden Units (csWorkerThread und csWorkerThreadpool) verwenden teilweise die gleichen Bezeichner, sollten also nicht gemeinsam in einem Projekt verwendet werden.
Hab mir den Code noch nicht näher angesehen, aber lässt sich das nicht sinnvoller Weis zusammenführen ?
Na ja, vielleicht. Ich wüsste aber nicht, wieso. Denn Du kannst auch einfach einen ThreadPool mit einem Thread instantiieren und dann hast Du das gleiche Ergebnis.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Workerthread: Der Diener im Hintergrund

  Alt 15. Jun 2007, 12:49
Zitat von kalmi01:
Delphi-Quellcode:
    For i := 0 To L.Count - 1 Do
      TWorkerThreadJob(L[i]).Free; <<<< hier
    L.Clear;
Memory-Leak in der finalization
Schleifenvariable ist Cardinal, L.Count (=0) - 1 als Cardinal gecastet ist dann doch etwas zu groß.. Daher der Müll..

Neue Version im 1.Post
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#7

Re: Workerthread: Der Diener im Hintergrund

  Alt 15. Jun 2007, 13:14
Zitat von alzaimar:
Neue Version im 1.Post
Demoprog starten und sofort wieder schliessen ==> Memory-Leak weil fThreadPool nicht wieder freigegeben wird.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Workerthread: Der Diener im Hintergrund

  Alt 15. Jun 2007, 14:33
Zitat von kalmi01:
Zitat von alzaimar:
Neue Version im 1.Post
Demoprog starten und sofort wieder schliessen ==> Memory-Leak weil fThreadPool nicht wieder freigegeben wird.
Fertig. Das war kniffeliger, als gedacht. Leider gibt es keine fertige Instanz 'PendingJobs' mehr, denn die Freigabe im Finalisierungsabschnitt kann nach der Classes-Finalisierung passieren, was bedingt durch die Verwendung von TThreads schmerzhaft und peinlich wird (wegen RTE 216).

Neue Version im 1.Post

Los, weitere Probleme ?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#9

Re: Workerthread: Der Diener im Hintergrund

  Alt 15. Jun 2007, 14:44
Zitat von alzaimar:
Los, weitere Probleme ?
Demoprog starten und (versuchen) wieder zu schliessen ==> Geht nicht, Fenster bleibt stehen.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Workerthread: Der Diener im Hintergrund

  Alt 15. Jun 2007, 15:33
Komisch, bei mir nicht... 100 Versuche, 100 mal korrekt geschlossen. Vermutlich hast du einen langsameren Rechner ...

Das Beenden von Threads beim Programmende ist nicht Ohne, aber wenn es hier funktioniert, kann ich leider keine 'Abhilfe' schaffen. Dummerweise sind auch Versuche, eine Multithreadinganwendung zu debuggen, sehr komplex, da sich die IDE sehr oft aufhängt.

klick mal auf 'Terminate', das ruft Destroy auf und erstellt den Pool anschließend wieder.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 8     123 45     Letzte »    


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 23:57 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-2025 by Thomas Breitkreuz