Alex_R
Плаваю в этом вопросе(
В метод Dispose() у IDisposable при реализации обычно пихают освобождение анманажед ресурсов и закрытие всевозможных дескрипторов. using-конструкция же разворачивается в try-finally блок, в последнем диспос и вызывается что и гарантирует высвобождение всего что нужно. В отличии от деструктора (финализатора) который вызывается самим GC лишь в определенные периоды времени, Dispose() вызовется сразу же после выполнения нужного кода.