Silverlight: как выгрузить (утилизировать) изображение из памяти? - PullRequest
6 голосов
/ 11 января 2009

У меня есть элемент управления изображением, который отображает большой файл JPG и занимает около 50 МБ памяти. Как избавиться от этого элемента управления, когда он больше не нужен? Я попытался удалить его из родительского контейнера, присвоив ему значение null и изменив его свойство Source на null, но использование памяти остается прежним ... Любые предложения будут высоко оценены!

Ответы [ 2 ]

9 голосов
/ 12 января 2009

Я наконец нашел ответ на свой вопрос. Проблема была в ошибке утечки памяти в Silverlight. Я нашел решение этой проблемы здесь: http://blogs.msdn.com/silverlight_sdk/pages/silverlight-bugs-and-workarounds.aspx

утечка памяти при динамическом добавлении и удалите Изображения

Обходной путь: при динамическом добавлении или удаление BitmapImages из приложение (a.k.a. добавление / удаление из дерева), вы должны установить Image.Source = null перед удалением элемент изображения из дерева. это сделает BitmapImage подходящим для вывоз мусора. Статус ошибки: Активен ошибка. *

Спасибо всем за предложения!

0 голосов
/ 11 января 2009

Я думаю, что это крайняя проблема с Silverlight из-за зависимости от сборки мусора. К сожалению, если вы создаете множество объектов (а я много значу), то вы получите снижение производительности (даже если вы все правильно освободите и / или Dispose () всего), потому что GC просто не успевает и у нас нет ресурсов, чтобы разбрасываться, как в «нормальном» приложении.

У вас проблема или просто просмотр памяти?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...