OutOfMemoryException beim Erstellen einer großen Bitmap in CF.NET

Meine kompakte Framework-Anwendung erstellt eine Liste mit reibungslosem Bildlauf, indem alle Elemente auf einer großen Bitmap-Oberfläche gerendert werden. Anschließend wird diese Bitmap an eine versetzte Position auf dem Bildschirm kopiert, sodass nur die entsprechenden Elemente angezeigt werden. In älteren Versionen wurden nur die Elemente gerendert, die zu diesem Zeitpunkt auf dem Bildschirm angezeigt werden sollten. Dieser Ansatz war jedoch zu langsam für eine reibungslose Bildlaufoberfläche.

ei der ersten Erstellung der großen Bitmap wird gelegentlich eine OutOfMemoryException generiert. Wenn der Benutzer einen Soft-Reset des Geräts ausführt und die Anwendung erneut ausführt, kann er die Erstellung problemlos durchführen.

Es sieht nicht so aus, als würde diese Bitmap im Programmspeicher generiert, da die Anwendung ungefähr so viel Programmspeicher beansprucht wie vor den neuen Smooth-Scrolling-Methoden.

Ist es eine Möglichkeit, diese Ausnahme zu verhindern? Gibt es eine Möglichkeit, den Speicherplatz freizugeben, den ich benötige (wo immer er sich befindet), bevor die Ausnahme ausgelöst wird?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage