Я сделал приложение для Windows-телефона, у которого, к сожалению, есть утечка памяти, потому что страницы не удалены правильно. Это было решено с помощью ответа:
Удалить страницы Windows-телефона Заявив:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
while (App.RootFrame.RemoveBackEntry() != null) ; //line if you navigate without backkey
base.OnNavigatedTo(e);
this.Dispatcher.BeginInvoke(() =>
{
GC.Collect();
GC.WaitForPendingFinalizers();
this.Dispatcher.BeginInvoke(() =>
{
GC.Collect();
GC.WaitForPendingFinalizers();
this.Dispatcher.BeginInvoke(() =>
{
GC.Collect();
GC.WaitForPendingFinalizers();
});
});
}
Это удалило ссылки на страницы из профилировщика. Но память по-прежнему увеличивалась при навигации. И не было очевидным, откуда появилась увеличенная память. Поэтому я попытался ввести пустой проект и перешел к нему в качестве звездной навигации, Иллюстрированный как:

Это уменьшилось до 20 мб, визуальных эффектов и других элементов. Так что это был важный шаг. Поэтому я хотел разделить функциональность на разные проекты, чтобы удалить любые связи между различными функциями и сохранить низкое использование памяти. Это привело к следующей структуре:
- WebService
- MainProject
- SecondaryProject
- PortableLibrary
Я разделяю модели между всеми проектами, используя портативную библиотеку. Это повлияло на то, что при каждой навигации к новому проекту все очищается в старом проекте, т.е. Существует только один элемент каждого элемента, значительное улучшение памяти. Но все же какая-то утечка памяти, хотя и ограниченная, что означает лишь некоторое увеличение памяти. Но откуда приходит память? Возвращаясь к профилировщику:

Это показывает, что страницы не удаляются конкретно, все элементы .view. был бы удален кодом в конфигурации всех страниц, находящихся в одном проекте. Однако утечка памяти аналогична.
Вопрос
- Как удалить страницы и элементы из другого проекта внутри такое же решение?
- Как удалить проект из памяти?
Не существует информации, разделяемой между двумя проектами, за исключением того, что они могут создать версию LibraryOfModels. Поэтому никакие события, переменные или ссылки не распределяются между границами проекта.
Но для жизни меня я не могу удалить его из памяти. Я хочу удалить их из памяти, так как мой фрагмент кода в верхней части делает, если навигация была только внутри одного проекта. Проблема существует из-за того, что навигация распространяется по двум проектам. Но он имеет некоторые преимущества памяти в других областях, поэтому я хочу эту структуру.
Надеюсь, кто-то может помочь. спасибо!
Дополнительные тесты
Я пробовал делать все пользовательские настройки страниц, чтобы избежать навигации. Но воссоздавая их пару раз, была устойчивая утечка 1-2 Мб. Идея проекта, следовательно, по-прежнему лучше, так как существует привязка. Но до сих пор нет решения по его устранению.
Все еще надеется на рыцаря с сияющей клавиатурой;)