Как написать элементы управления Silverlight, которые не пропускают память - PullRequest
7 голосов
/ 25 ноября 2010

Я только что исследовал некоторые элементы управления Silverlight с помощью ANTS Memory Profiler (замечательно!) И обнаружил, что некоторые из моих элементов управления остаются в памяти.Решение этой проблемы состояло в том, чтобы сбросить значения Template и Content в null при управлении 'Unloads' и очистить все привязки, которые я сделал в коде.

Это нормальный шаблон для работы с пользовательскими элементами управления Silverlight, и я просто не смог сделать это должным образом в прошлом?

Кто-нибудь знает парадигму, например, шаблон для написания элементов управления Silverlight с аккуратной очисткой?

Приложение Я продолжал исследовать это и обнаружил, что привязкик DataContext удаляются, когда DataContext имеет значение NULL.Кажется, что правильная процедура - установить любое значение Datacontext в событии Loaded и установить его в null в событии Unloaded.У меня все еще есть фундаментальная проблема с парадигмой написания элементов управления Silverlight Templated, поскольку я просто не могу принудительно уничтожить ContentControls (см. Мою проблему здесь: Почему Silverlight ContentControls не собирает мусор? ).

Ответы [ 3 ]

2 голосов
/ 16 февраля 2011

MS выпустила Silverlight 4 GDR3, который включает исправления утечки памяти. Я не уверен, что это исправляет ваш случай, но стоит загрузить последнюю версию SL и протестировать снова.

1 голос
/ 16 февраля 2011

Вы узнали, где утечка?Это в вашем или в коде MS?

Вот хороший пост об обнаружении утечек в SL: http://dotnetspeak.com/index.php/2010/09/using-windbg-to-find-memory-leaks-in-silverlight-applications/

0 голосов
/ 26 февраля 2011

Моя проблема связана с моим желанием перезагружаемых элементов управления.Я снова задал вопрос более подробно здесь: Нужно ли повторно загружать элементы управления Silverlight на страницы?

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