Я пытаюсь developp приложения, чтобы взять и напечатать фотографии с Visual Studio 2013.Из памяти с BitmapImage
Приложения делит на 2 проекта:
Первого клиент, его возьмите 4 фотографии и отправьте их пути.
Второй сервер. Когда есть соединение, он показывает 4 фотографии. Тогда пользователь может выбрать рамку, количество и распечатать свои фотографии.
Существует проблема с загрузкой:
BitmapImage _img1 = new BitmapImage();
_img1.BeginInit();
_img1.CacheOption = BitmapCacheOption.OnLoad;
_img1.UriSource = new Uri(_images[0]);
_img1.EndInit();
img1.Source = _img1;
BitmapImage _img2 = new BitmapImage();
_img2.BeginInit();
_img2.CacheOption = BitmapCacheOption.OnLoad;
_img2.UriSource = new Uri(_images[1]);
_img2.EndInit();
img2.Source = _img2;
BitmapImage _img3 = new BitmapImage();
_img3.BeginInit();
_img3.CacheOption = BitmapCacheOption.OnLoad;
_img3.UriSource = new Uri(_images[2]);
_img3.EndInit();
img3.Source = _img3;
BitmapImage _img4 = new BitmapImage();
_img4.BeginInit();
_img3.CacheOption = BitmapCacheOption.OnLoad;
_img4.UriSource = new Uri(_images[3]);
_img4.EndInit();
img4.Source = _img4;
Я стараюсь с "BitmapCacheOption.OnDemand". При запуске программы потребление памяти составляет 3Go. Через несколько минут он увеличивается до 6Go.
Когда брошено OutOfMemoryException, речь идет о PresentationCore.dll
Я ищу OFR потребления, и в каждом цикле программы, увеличение Потребляемого от 0,4Go.
WIthout показать фотографии, приложение стабильно.
Я попытался с Bitmap и BitmapImage, GC.Collect и DeleteObject из gdi32.dll, проблема такая же.
Есть ли способ распорядиться всеми ресурсами?
Извините за мой английский
Как часто вы создаете эти изображения? Вы активно их уничтожаете? – BrokenGlass
Не уверен, что это влияет на вашу проблему, но в вашем коде в разделе '_img4' вы набрали' _img3.CacheOption = BitmapCacheOption.OnLoad; 'aswell – NLindbom
Вы удаляете какие-либо из растровых изображений? В противном случае объем используемой памяти будет расти – TheLethalCoder