| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > IDispose |
| Автор: tercat 10.8.2012, 15:21 | ||
| После работы с объектом, рекомендуют его уничтожить самостоятельно методом Dispose() иначе "может возникнуть множество проблем, когда объект останется в памяти" пока его не уничтожит GC. У меня вопрос: о каких проблемах может идти речь, кроме снижения производительности из-за того, что в памяти будет висеть объект? и еще, в МСДН говориться что только Dispose() может уничтожить "неуправляемые ресурсы", что имеется ввиду? объекты созданные из внешних неуправляемых DLL? Всем спасибо за ответы ;) Добавлено через 1 минуту и 58 секунд Еще с хабра:
то есть одни говорят "всегда юзай Dispose() другие говорят что только для "внешних ресурсов""... |
| Автор: Cheloveck 10.8.2012, 16:33 |
Об утечки памяти, о незакрытых дескрипторах, о недописанных потоках, ... Если класс наследует IDisposable, Dispose надо звать всегда и обязательно (можно использовать конструкцию using). Никакой GC за тебя ресурсы освобождать не будет, он только дёрнет деструктор. |