Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
Delphi 7 Enterprise
|
[gelöst] SetPriorityClass: Idle ist nicht wirklich idle?
2. Aug 2005, 15:19
Hallo!
Ich habe ein Progrämmchen geschrieben dass alle in einem Ordner befindlichen jpegs auf inhaltliche Ähnlichkeit überprüft und protokolliert. Da dies (weil ja jedes Bild gegen jedes andere geprüft werden muss) schon mal etwas länger dauern kann, schraube ich die Priotität runter. Ich hatte dies schon mal vor ein paar Monaten mit einem Thread gemacht, wobei ich aber arge Probleme mit der jpeg-Uhit bekam. Sie scheint nicht Threadsicher zu sein, und ich bekam reihenweise Fehler der Art "nicht genügend Arbeitsspeicher" (so ähnlich). Im Mainthread haben exakt die selben Funktionen tadellos funktioniert, und ich hatte auch keine Speicherlecks.
Nun, einige Zeit später, habe ich mich diesem Teil wieder gewidmet, und es diesmal mit "SetPriorityClass" probiert. Und siehe da: Keine Fehler! Jetzt das dicke aber was mich zu meiner Frage hier treibt: Selbst wenn der Prozess auf IDLE gesetzt ist verhält er sich nicht im geringsten so. Wenn ich z.B. nebenbei ein Framebased Spiel spiele dass in aller Regel 100% CPU einfordert, bollert mein Programm trotzdem im Hintergrund weiter und sorgt für reichlich Ruckelei. Ein Thread hingegen bleibt bei selben Bedingugen tatsächlich stehen. Wie bekomme ich dieses Verhalten für meinen ganzen Prozess?
Zum Nachvollziehen habe ich den Quelltext angehängt. Zum Kompilieren ist noch die Graphics32 erforderlich.
Besten Dank schon mal!
Fabian
Fabian K. INSERT INTO HandVonFreundin SELECT * FROM Himmel
|