Pytania otagowane jako idisposable

IDisposable to interfejs w bibliotece klas podstawowych (BCL) środowiska Microsoft .NET Framework. Jego celem jest zapewnienie ogólnej, deterministycznej metody zwalniania niezarządzanych zasobów w kodzie aplikacji .NET.

19
Właściwe użycie interfejsu IDisposable
Wiem z lektury dokumentacji Microsoft, że „podstawowe” użycieIDisposable interfejsu jest czyszczenie niezarządzanych zasobów. Dla mnie „niezarządzany” oznacza takie rzeczy, jak połączenia z bazą danych, gniazda, uchwyty okien itp. Ale widziałem kod, w którym Dispose()metoda jest zaimplementowana w celu swobodnego zarządzania zasobów, co wydaje mi się zbędne, ponieważ śmieciarz powinien zająć …

13
Zastosowanie metody Finalize / Dispose w C #
C # 2008 Pracuję nad tym od dłuższego czasu i nadal jestem zdezorientowany co do użycia metod finalizacji i usuwania w kodzie. Moje pytania są poniżej: Wiem, że potrzebujemy tylko finalizatora, który pozbywa się niezarządzanych zasobów. Jeśli jednak istnieją zasoby zarządzane, które wykonują połączenia z zasobami niezarządzanymi, czy nadal będzie …

12
Czy HttpClient i HttpClientHandler muszą być usuwane między żądaniami?
System.Net.Http.HttpClient i System.Net.Http.HttpClientHandler w .NET Framework 4.5 implementują IDisposable (przez System.Net.Http.HttpMessageInvoker ). Dokumentacja usingoświadczenia mówi: Z reguły, gdy używasz obiektu IDisposable, powinieneś zadeklarować go i utworzyć jego instancję w instrukcji using. Ta odpowiedź wykorzystuje ten wzorzec: var baseAddress = new Uri("http://example.com"); var cookieContainer = new CookieContainer(); using (var handler = …


10
Czy powinienem usunąć () DataSet i DataTable?
Zarówno DataSet, jak i DataTable implementują IDisposable, więc zgodnie z tradycyjnymi najlepszymi praktykami powinienem wywołać ich metody Dispose (). Jednak z tego, co przeczytałem do tej pory, DataSet i DataTable nie mają w rzeczywistości żadnych niezarządzanych zasobów, więc Dispose () tak naprawdę niewiele robi. Ponadto nie mogę po prostu użyć, …



5
Czy powinienem wywołać Close () czy Dispose () dla obiektów strumienia?
Klasy takich jak Stream, StreamReader, StreamWriteritp osprzęt IDisposableinterfejsu. Oznacza to, że możemy wywołać Dispose()metodę na obiektach tych klas. Zdefiniowali również publicmetodę o nazwie Close(). To mnie wprawia w zakłopotanie, co mam nazwać, gdy skończę z przedmiotami? A jeśli zadzwonię do obu? Mój obecny kod to: using (Stream responseStream = response.GetResponseStream()) …


9
Czy Garbage Collector zadzwoni do IDisposable.Dispose dla mnie?
Wzorzec .NET IDisposable oznacza, że jeśli napiszesz finalizator i zaimplementujesz IDisposable, finalizator musi jawnie wywołać Dispose. Jest to logiczne i zawsze to robiłem w rzadkich sytuacjach, gdy finalizator jest uzasadniony. Jednak co się stanie, jeśli po prostu to zrobię: class Foo : IDisposable { public void Dispose(){ CloseSomeHandle(); } } …



2
ASP MVC: Kiedy wywoływana jest metoda IController Dispose ()?
Przechodzę przez dużą refaktoryzację / poprawianie szybkości jednej z moich większych aplikacji MVC. Został wdrożony do produkcji od kilku miesięcy i zacząłem otrzymywać limity czasu oczekiwania na połączenia w puli połączeń. Wyśledziłem problem do nieprawidłowego usunięcia połączeń. W związku z tym dokonałem tej zmiany w moim kontrolerze podstawowym: public class …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.