Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csOpRsEr 157 of 163 menu
◀ ▶

Память и внешние ресурсы в C#

Объект в куче может занимать мало памяти, но держать тяжелый ресурс операционной системы.

Открытый файл, сетевое соединение или блок неуправляемой памяти живут отдельно от байтов самого объекта. Сборщик со временем уничтожит объект-обертку, но момент закрытия файла может запаздывать относительно того момента, когда программа уже закончила с ним работу. Поэтому такие ресурсы завершают явно - отдельной командой в коде, когда участок работы с ресурсом закончился.

Класс-заглушка покажет идею: объект «открывает» ресурс и должен его «закрыть»:

LogSession session = new LogSession(); Console.WriteLine(session.open); session.Close(); class LogSession { public bool open = true; public void Close() { open = false; Console.WriteLine("closed"); } }

Пока open равен true, ресурс считается занятым. После Close программа явно фиксирует, что ресурс больше не используется.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить