@darkglare

Каким действием можно освободить память приложения от конкретного экземпляра класса C#?

Каким действием можно освободить память приложения от конкретного экземпляра класса C#? В этом то и вопрос.
  • Вопрос задан
  • 172 просмотра
Решения вопроса 2
petermzg
@petermzg
Самый лучший программист
Только удалением всех ссылок на данный экземляр и вызовом Сборщика Мусора
Ответ написан
Комментировать
@soloveid
GC.Collect() если объект не подвязан никуда.
Указать, что удалить именно заданный объект - нельзя.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
В .NET используется автоматическое управление памятью и сборщик мусора.
Разработчик не имеет контроля над тем, как выделяется память в куче и как она освобождается.

Сборщик мусора сам собирает объекты, на которые нигде больше нет ссылок (но конкретный момент времени заранее сложно предсказать)

Можно принудительно стриггерить сборку мусора при помощи GC.Collect(), но учитывайте, что это очень дорогая операция, по тому её нельзя вызывать бездумно
Ответ написан
Комментировать
yarosroman
@yarosroman Куратор тега C#
C# the best
Никак. Даже принудительно вызвав сборщик мусора, не факт, что объект будет собран.
Если есть желание порулить памятью вручную https://docs.microsoft.com/ru-ru/dotnet/api/system..., unsafe mode, ну и работа с указателями в стиле С++.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы