У меня есть MDI с дочерней формой. Дочерняя форма имеет DataGridView а> в нем. Я загружаю огромное количество данных в представление сетки данных. Когда я закрываю дочернюю форму, вызывается метод удаления, в котором я удаляю datagridview
this.dataGrid.Dispose();
this.dataGrid = null;
Когда закрываю форму, память не уходит. Я использую профилировщик памяти .NET для отслеживания использования памяти. Я вижу, что использование памяти увеличивается, когда я первоначально загружаю сетку данных (как и ожидалось), а затем становится постоянным, когда загрузка завершена.
Когда я закрываю форму, она остается неизменной. Однако, когда я делаю снимок памяти с помощью профилировщика памяти, он становится таким, каким был до загрузки файла. Создание моментального снимка памяти приводит к принудительному запуску сборщика мусора.
Что здесь происходит? Есть утечка памяти? Или мне нужно принудительно запустить сборщик мусора?
Дополнительная информация:
Когда я закрываю форму, мне больше не нужна информация. Вот почему я не держу ссылку на данные.
Обновить
От меня требуется загрузить все данные сразу. Использование памяти становится очень высоким, когда данных много, поэтому мне интересно, делаю ли я что-то не так, и сборщик мусора не запускается, но, с другой стороны, когда я смотрю на профилировщик, он показывает, что когда он берет снимок потребление памяти уменьшается. Поэтому я не могу понять, что происходит.