Pamięć nie została zwolniona podczas ustawiania wartości BitmapImage na null
Mam kolekcje obiektów, każdy obiekt zawiera BitmapImage. Mam tę kolekcję związaną z FlipView. Gdy użytkownik odwraca stronę w FlipView, BitmapInmage wybranego obiektu jest ładowany z ApplicationData i ustawiam BitmapImage poprzedniego obiektu na null, aby zwolnić pamięć. Problem polega na tym, że pamięć nigdy nie zostaje zwolniona, a aplikacja ulega awarii po pewnym czasie. Kiedy patrzę na kolekcję, tylko rzeczywisty element ma swój zestaw BitmapImage, wszystkie pozostałe mają go jako null. Jak więc uwolnić pamięć?
Sposób ładowania obrazów:
StorageFile s = await ApplicationData.Current.LocalFolder.GetFileAsync(localFilename);
BitmapImage bitmapImage = new BitmapImage();
using (var stream = await s.OpenAsync(FileAccessMode.Read))
{
bitmapImage.SetSource(stream);
}
return bitmapImage;
Edytować: Myślę, że problemem może być sposób w jaki ładuję obraz, chyba strumień plików nie zostanie uwolniony