Я создал список в Windows Phone Mango.
Я буду использовать его для отображения многих фотографий в одном длинном списке.
В целях тестирования я использую только одну фотографию иповторяя его для каждого индекса.
При загрузке изображения из изолированного хранилища 100 изображений потребляют 170 МБ памяти.
Когда я вставляю то же изображение в сборку в качестве ресурса (т.е. / Images / image1.jpg) 10'000 изображений потребляют только 40 МБ.На самом деле он никогда не превышает 40 МБ, что бы здесь ни происходило (виртуализация пользовательского интерфейса?), Он работает хорошо.
Я должен использовать изолированное хранилище для своих изображений, так как обновления изображений периодически загружаются на телефон.Могу ли я заставить его работать так же, как встроенное изображение?
Может кто-нибудь объяснить мне;
Когда я получаю изображение из изолированного хранилища, почему оно такЧем больше памяти, тем больше я загружаю, тем выше он получает?
Когда я получаю его из папки с изображениями, когда он является частью сборки, как он может загружать десятки тысяч изображенийи память никогда не увеличивается, это виртуализация пользовательского интерфейса?
Спасибо за любую помощь заранее.
Вот мой код.(Разработка началась только 6 месяцев назад, если она выглядит несколько хитроумно!)
// ПОЛУЧИТЬ ИЗОБРАЖЕНИЕ ИЗ ИЗОЛИРОВАННОГО ХРАНИЛИЩА
IsolatedStorageFile insISF = IsolatedStorageFile.GetUserStoreForApplication();
for (int i = 0; i < 100; i++)
{
byte[] byte1;
using (IsolatedStorageFileStream isfs = insISF.OpenFile("\\Photos\\image1.jpg", FileMode.Open, FileAccess.Read))
{
byte1 = new byte[isfs.Length];
isfs.Read(byte1, 0, byte1.Length);
isfs.Close();
}
Image image = new Image();
MemoryStream ms = new MemoryStream(byte1);
BitmapImage bi = new BitmapImage();
bi.SetSource(ms);
image.Source = bi;
listBox2.Items.Add(image);
//NOTE I HAVE TRIED "ms.Dispose();" HERE BUT IT DOES NOT HELP.
}
// END
// GET IMAGEОТ ПАПКИ ИЗОБРАЖЕНИЙ КАК ЧАСТЬ СБОРКИ
for (int i = 0; i < 10000; i++)
{
BitmapImage bi = new BitmapImage(new Uri("/Images/image1.jpg", UriKind.Relative));
Image image = new Image();
image.Source = bi;
listBox2.Items.Add(image);
}
// END