Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для LightZ
4 / 4 / 0
Регистрация: 31.10.2014
Сообщений: 39

Обнуление памяти (очистка DataSet) после закрытия формы

22.03.2017, 14:16. Показов 2765. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Недавно столкнулся с неприятной проблемой: при закрытии вторичной формы не полностью очищается память
DataTable биндится к DataGridView, и по логике, после закрытия формы она должна полностью очистится и освободить память.
Но не тут то было...
Возможно я где-то неправ и что-то не понимаю или так и должно быть?
Спасибо!

В примере ниже создаётся "большой" DataTable, передается во вторичную форму и записывается в Грид.
При открытии программы - она занимает 5 МБ;
После открытия Form1 в оперативную память записывается 364 МБ;
А после закрытия остаётся 90 МБ (почему не 5 ?)
Я даже для тестов везде всё обнуляю и специально вызываю сборщик мусора.

Вот пример основной формы (а именно вызов вторичной формы):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        private void btnShowFrm_Click(object sender, EventArgs e)
        {
            var ds = new DataSet();
            ds.Tables.Add("Test");
            ds.Tables["Test"].Columns.Add("Name", typeof (string));
 
            for (int i = 0; i < 1000000; i++)
                ds.Tables["Test"].Rows.Add("aaa");
            
            ds.AcceptChanges();
 
 
            using (var frm = new Form1(ds))
            {
                frm.ShowDialog();
            }
            
            ds = null;
            GC.Collect();
        }
Вот пример формы, которая вызывается:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        private DataSet _ds;
 
        public Form1(DataSet ds)
        {
            InitializeComponent();
            _ds = ds;
            dataGridView1.DataSource = _ds.Tables[0];
        }
 
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            dataGridView1.DataSource = null;
            _ds = null;
            GC.Collect();
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2017, 14:16
Ответы с готовыми решениями:

Очистка DataSet после заполнения БД
в общем нужно сделать так чтобы данные сохранились в БД(MS Access), а после копирования удалились, вот попытался это реализовать ...

Изменение отображения значка начальной формы из формы заставки после закрытия
Никак не получается из формы заставки после ее закрытия изменить в начальной форме showiconintascbar. Никто не знает как это сделать? В...

Окно остается в памяти после закрытия
Начал изучать основы WinAPI, переписал пример с одной книги, программа просто создает окно. Но после закрытия остается в памяти. Может...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.03.2017, 14:16
Помогаю со студенческими работами здесь

Чистка памяти после закрытия iFrame
Как корректно закрыть/удалить iframe со страницы что бы память освободилась? заметил что при открывании на основной странице других...

Обнуление формы, после отработки CallBack функции Javascript
Уважаемые, приветствую! Я новичёк в Web программировании, поэтому прошу отнестись с пониманием... Ситуация в следующем: Есть ASPX...

После закрытия форма остается висеть в памяти
Здравствуйте. Проблема в сабже. Никаких таймеров, все внешние события weak. Но после закрытия память не освобождается, довольно...

очистка памяти после использования calloc
мне нужна функция возвращающая массив символов(строку). написал функцию: char* return_string(int num) { char* str = (char*)...

Запущенные приложения после закрытия скрытно зависают в памяти
Запущенные приложения после закрытия скрытно зависают в памяти. Батники и ранее запущенные приложения некоторое время не удаляются(в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru