Czy sfinalizowanie pozbycia się połączenia?

Spisu treści:

Czy sfinalizowanie pozbycia się połączenia?
Czy sfinalizowanie pozbycia się połączenia?

Wideo: Czy sfinalizowanie pozbycia się połączenia?

Wideo: Czy sfinalizowanie pozbycia się połączenia?
Wideo: I Can't Afford To Lose Connections Again 2024, Listopad
Anonim

Jeżeli posiadasz zasoby natywne, implementujesz zarówno Dispose, jak i Finalize i obie wywołują wspólną metodę, która zwalnia zasoby natywne. Te idiomy są zwykle łączone za pomocą prywatnej metody Dispose(bool disposing), która wywołania Dispose z true i sfinalizuj wywołania z false.

Kiedy użyć sfinalizowania czy usunięcia?

Metoda dispose() służy do zwalniania niezarządzanych zasobów przy każdym wywołaniu. Metoda finalize() służy do zwalniania niezarządzanych zasobów przed zniszczeniem obiektu. Metoda dispose() ma być zaimplementowana zawsze, gdy istnieje metoda close().

Jaka jest różnica między metodami Dispose i Finalize?

Główną różnicą między dispose i finalize jest to, że metoda dispose musi być jawnie wywołana przez użytkownika podczas gdy metoda finalize jest wywoływana przez garbage collector, tuż przed obiekt jest zniszczony.

Czy za pomocą połączenia Dispose?

Instrukcja using zapewnia, że Dispose jest wywoływane, nawet jeśli wystąpi wyjątek podczas wywoływania metod na obiekcie. Możesz osiągnąć ten sam wynik, umieszczając obiekt w bloku try, a następnie wywołując Dispose w bloku finally; w rzeczywistości tak właśnie instrukcja using jest tłumaczona przez kompilator.

Czy powinienem zadzwonić Dispose C?

4 Odpowiedzi. Ogólna zasada: jeśli klasa implementuje IDisposable, powinieneś zawsze wywoływać metodę Dispose, gdy tylko skończysz korzystać z tego zasobu Jeszcze lepiej zapakuj go w instrukcję using, aby upewnić się, że metoda Dispose być wywoływana, nawet jeśli zostanie zgłoszony wyjątek: using (var reader=conn.

Zalecana: