henning-malaysia
Mitglied
Hallo zusammen,
habe zum SWT Lernen einen kleinen Bildbetrachter gecoded, der auch soweit funktioniert. Er stellt ein Bild von der Festplatte im Vollbildmodus dar, beim Drücken der Links- bzw. Rechts-Cursor-Taste wechselt er zum vorherigen bzw. nächsten Bild im Verzeichnis (bitte keine Diskussion über den Sinn / Unsinn eines weiteren Bildbetrachters - ist nur ein Übungsbeispiel).
Zur Darstellung verwende ich ein Canvas, welchem ich per
immer das nächste Bild zuweise.
Problem: Obwohl ich bei jedem Bildwechsel zunächst auf dem alten Bild dispose() aufrufe, müllt sich mein Speicher immer mehr zu. Im Taskmanager kann ich sehen, wie bei jedem Bildwechsel der belegte Arbeitsspeicher ansteigt. Es fliegt zwar kein OutOfMemory, aber die Kiste wird natürlich lahm.
Frage: Ist das dispose() denn kein Garant dafür, dass die Systemressource wieder freigegeben und somit auch aus dem Speicher gefegt wird? Weiß jemand, was ich sonst noch versuchen kann, um das Problem in Griff zu kriegen?
Es freut sich auf Lösungen...
der Henning
habe zum SWT Lernen einen kleinen Bildbetrachter gecoded, der auch soweit funktioniert. Er stellt ein Bild von der Festplatte im Vollbildmodus dar, beim Drücken der Links- bzw. Rechts-Cursor-Taste wechselt er zum vorherigen bzw. nächsten Bild im Verzeichnis (bitte keine Diskussion über den Sinn / Unsinn eines weiteren Bildbetrachters - ist nur ein Übungsbeispiel).
Zur Darstellung verwende ich ein Canvas, welchem ich per
Code:
setBackgroundImage(Image img)
Problem: Obwohl ich bei jedem Bildwechsel zunächst auf dem alten Bild dispose() aufrufe, müllt sich mein Speicher immer mehr zu. Im Taskmanager kann ich sehen, wie bei jedem Bildwechsel der belegte Arbeitsspeicher ansteigt. Es fliegt zwar kein OutOfMemory, aber die Kiste wird natürlich lahm.
Frage: Ist das dispose() denn kein Garant dafür, dass die Systemressource wieder freigegeben und somit auch aus dem Speicher gefegt wird? Weiß jemand, was ich sonst noch versuchen kann, um das Problem in Griff zu kriegen?
Es freut sich auf Lösungen...
der Henning