Dlaczego wywołać Dispose () przed zakończeniem main ()?

Moja usługa .net czyści wszystkie niezarządzane zasoby, wywołując resourceName.Dispose () w bloku finally przed wyjściem pętli Main ().

Czy naprawdę muszę to zrobić?

Czy mam rację, myśląc, że nie mogę przeciekać żadnych zasobów, ponieważ proces się kończy? Windows zamknie wszystkie uchwyty, które nie są już używane, prawda?