Я недавно создал новое приложение WPF, имеющее цикл в MainWindow.xaml, который создает новый объект другой страницы (Test.xaml) и создает диалог страницы Test.xaml. В Test.xaml я добавил Textblock и обновил свойство Text для события Loaded и немедленно закрыл страницу.
Теперь, когда я запустил код, я увидел, что память, используемая этим приложением, постоянно увеличивается. Почему это действительно происходит?
Я уже избавляюсь от предыдущего объекта и переписываю с новым объектом, тем не менее он увеличивает память из-за предыдущего объекта.
В чем может быть причина этого? Как я могу удалить это поведение?
Я попытался создать дамп памяти приложения для анализа утечек памяти, там я увидел, что Hashtable, DependencyProperty и EventHandler используют большую часть памяти.
MainWindow.xaml
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
int counter = 0;
Test test = null;
do
{
test = null;
test = new Test();
test.ShowDialog();
} while (++counter != 5000);
test = null;
}
Test.xaml
private void Test_Loaded(object sender, RoutedEventArgs e)
{
MyTextBox.Text = "Testing leaks";
Close();
}
Я ожидаю, что объект должен быть полностью уничтожен и не должен способствовать увеличению памяти.