Чем отличается метод Dispose() от Finalize() ?

  • 12 Просмотры
  • Последний пост 15 июня 2018
Дмитрий Шваб разместил пост 14 июня 2018

   

Отсортировать по: Стандартный | Последний | Голоса
Дима Мусиенко разместил пост 15 июня 2018

Ответ на Ваш вопрос частично (или полностью) может быть в данном посте

Также рекоммендуем Вам пройти курс C# Professional, где на 9-м уроке подробно рассматривается механизм сборки мусора в языке C#.

Петр Алексеевич разместил пост 15 июня 2018

Dispose - это механизм освобождения ресурсов, используемый программистом, а Finalize - используемый самой платформой .NET Framework.

Рекоммендуется реализовывать интерфейс IDisposable, вместо того, что б создавать пользовательские финализаторы. Тобишь если нужно освободить ресурсы памяти в определённом месте - вызовите метод Dispose в указанном месте и таким образом дадите компилятору знать, что в данном месте нужно освободить неуправляемые ресурсы памяти. 

Что бы не реализовывать интерфейс явно, можно просто использовать конструкцию using (по закрытию блока using автоматически вызовется метод Dispose).

Close