29. januar 2008 - 11:10Der er
6 kommentarer og 1 løsning
Listview - out of memory
Hej,
jeg arbejder med et værktøj, hvor jeg fylder et listview med billeder / store ikoner. Jeg scanner en cd for billeder, gør dem til thumbnails og fylder listview med disse via en imagelist.
Det fungerer rigtig godt, så længe der kun er tale om nogle hundrede billeder.
Desværre har jeg behov for, at runde flere tusinde billeder, og så går det lidt galt med memory.
Er der et godt råd?
Jeg leder evt. efter en metode til kun at rendere de thumbnails der er synlige, så de bliver vist efterhånden som jeg scroller i mit listview?
Du skal være opmærksom på at Image / Bitmap klasserne bruger unmanaged memory som backing store. Det vil sige at du hver gang du opretter en instans af sådan en klasse allokerer noget memory.
HUSK derfor at kalde Dispose() på objektet så snart du er færdig med at bruge det...
Min løsning blev et listview i virtualmode. Det viste sig umiddelbart at løse ressourceproblemet. Powerpunk gjorde mig dog opmærksom på dispose, som jeg manglede. Så selvom det ikke var min fulde løsning, hælder jeg pointene den vej.
Tak for det powerpunk, men jeg havde aldrig kommet på løsningen selv. Var blot en mindre modificering, som du selv siger ja, er ret elegant, og bør bruges meget mere (og den "skal" faktisk bruges hver gang en klasse inheriter fra IDisposable).
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.