Переключение между Windows WPF (MVC) - PullRequest
0 голосов
/ 01 октября 2018

У меня есть тестовое приложение WPF с двумя окнами (я также использую MVC, а не MVVM).Оба имеют одну кнопку, которая должна направлять пользователя в другое окно.

Сначала я попробовал этот код (я только показываю обработчики событий):

MainWindow.xaml.cs

private static void Button_Click(object sender, RoutedEventArgs e)
{
    OtherWindow k = new OtherWindow();
    k.Show();
    this.Close();
}

OtherWindow.xaml.cs

private static void Button_Click(object sender, RoutedEventArgs e)
{
    MainWindow k = new MainWindow();
    k.Show();
    this.Close();
}

Код работает, но я смотрю на использование памяти и он увеличиваетсякаждый раз, когда я переключаю окно.Это нормально или есть способ избежать этого и сохранить простоту?

1 Ответ

0 голосов
/ 01 октября 2018

Очень легко столкнуться с утечками памяти в WPF, особенно при многократном создании и удалении окон.

Я бы порекомендовал взглянуть на эту страницу:

http://svetoslavsavov.blogspot.com/2010/05/memory-leaks-in-wpf-applications.html

, в котором подробно описываются наиболее распространенные способы утечки памяти в WPF и способы ее устранения.

Я бы посоветовал взглянуть на разделы «Обработчики событий» и «События из статических объектов».first.

Кажется, что вы не удаляете свои обработчики событий для своего окна перед его закрытием, а это значит, что Window будет храниться в памяти.

Вы также должны взглянуть наэта ветка о хороших моментах по правильной утилизации ресурсов.Проверьте ответ по rookie1024: Как правильно распоряжаться окном WPF?

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