Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
99 / 9 / 1
Регистрация: 06.09.2012
Сообщений: 42
1

Уточнение работы Сборщика (GC)

02.06.2013, 20:08. Просмотров 656. Ответов 4
Метки нет (Все метки)


Дано: Форма, ЭлементНаФорме.
1. Создаю форму и в Дизайнере кидаю на неё Элемент.
2. Во время работы программы при закрытии формы вызывается метод Dispose() данной формы
3. Dispose() формы вызывает Dispose() у ЭлементаНаФорме.
4. Память освобождается при прохождении сборщика.
Пока вроде всё верно.

А что если я буду добавлять ЭлементНаФорме в каком-нибудь методе формы, а не в дизайнере? Например:
C#
1
2
3
4
5
if(admin)
{
    SomeTool someTool = new SomeTool();
    this.Controls.Add(someTool); 
}
Будет ли в этом случае срабатывать Dispose() у моего someTool и освободит ли память Сборщик после всего этого?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2013, 20:08
Ответы с готовыми решениями:

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

Обсуждение работы сборщика
Приветствую постоянных обитателей раздела bsod. Я вот что подумал: у пользователей периодически...

Уточнение работы с tcp сокетами
Как получить максимальное значение backlog, чтобы вызвать с ним метод Start(backlog) ? Как...

Требуется уточнение на тему работы функции min
Я хочу найти минимальное значение из значений главной диагонали матрицы 4на4. будет ли правильно...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы С#-разработчиков‌
4
1442 / 1115 / 344
Регистрация: 11.04.2011
Сообщений: 2,614
03.06.2013, 08:49 2
Для тех элементов, которые вы создаете в дизайнере, IDE генерирует код для созданию, который пихает в метод InitializeComponent. Метод InitializeComponent вызывается в конструкторе вашей формы. Таким образом для компилятора нет никакой разницы, через дизайнер вы создали элемент, или вручную. Это же касается и освобождения памяти.
1
99 / 9 / 1
Регистрация: 06.09.2012
Сообщений: 42
03.06.2013, 19:26  [ТС] 3
Спасибо.
0
Эксперт Java
4072 / 3806 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
03.06.2013, 23:34 4
Цитата Сообщение от kodv Посмотреть сообщение
IDE генерирует код для созданию, который пихает в метод InitializeComponent. Метод InitializeComponent вызывается в конструкторе вашей формы. Таким образом для компилятора нет никакой разницы, через дизайнер вы создали элемент, или вручную.
Я так и не понял вашу цепочку рассуждений.
По вашей логике, наоборот, так как студия пихает дополнительный код для стандартных компонентов в InitializeComponent, то для вручную созданного компонента Dispose как раз не сработает.
0
1442 / 1115 / 344
Регистрация: 11.04.2011
Сообщений: 2,614
04.06.2013, 02:41 5
Цитата Сообщение от turbanoff Посмотреть сообщение
Я так и не понял вашу цепочку рассуждений.
Видимо, просто ночное время сказывается.
Цитата Сообщение от kodv Посмотреть сообщение
нет никакой разницы, через дизайнер вы создали элемент, или вручную.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2013, 02:41

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Симулятор сборщика мусора
Не очень понимаю как работает удаление мусора. В упражнении нужно добавить в место A код из правого...

Постновогодний синдром сборщика ПК
Вот он - http://www.citilink.ru/configurator/q10277157/

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

Класс сборщика мусора, что думаете?
Всем привет, на форуме sql.ru увидел такой код, слегка исправил его, в методе Add, компилятор...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.