Ваш вопрос неверен. Вызов SuppressFinalize
не имеет никакого отношения к полезности Dispose
. Метод Dispose по-прежнему будет делать все, что написано в нем, когда вы вызываете его, явно или через блок using
.
Как правило, Dispose вызывает SupressFinalize, но это потому, что Dispose выполнит код, который будет запускаться из финализатора, если вы будете следовать типичному шаблону Dispose. Поскольку код уже был выполнен, нет необходимости в финализации, что является относительно дорогой операцией, поэтому Dispose будет вызывать SupressFinalize.