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