Ребят, тут как-то негаданно вопрос назрел. Смотрю тут код один в интернете. И случайно увидел в реализации метода Dispose (от интрфейса IIDisposable) вызов финализатора (GC.SuppressFinalize(this); И да - я такой код уже встречал ни раз, но никогда не задумывался зачем вызывают . Причем, когда сам пишу реализацию, никогда не использую в Dispose финализатор. Посмотрел код коллег своих, тоже нигде в Dispose не вижу вызов финализатора. Обычно сами ручками почистили что нужно, и всё. Так вот - по сути его задача нужна, чтоб объект 2 раза не чистился, если он уже удален. Но увы, что если GC попытается второй раз почистить, программа , то не упадёт? GC - же умный - приложение не будет ложить же... Вот и вопрос, насколько имеет смысл в практике вызывать GC.SuppressFinalize(this); в конце реализации метода Dispose?и что будет если всё-таки GC пойдёт и попытается удалить уже мёртвый объект...