Czy musisz pozbyć się obiektów i ustawić je na wartość zerową, czy też śmieciarz je wyczyści, gdy wyjdą poza
Wykonuje zdefiniowane przez aplikację zadania związane ze zwalnianiem, zwalnianiem lub resetowaniem niezarządzanych zasobów
Czy musisz pozbyć się obiektów i ustawić je na wartość zerową, czy też śmieciarz je wyczyści, gdy wyjdą poza
Dlaczego niektórzy ludzie używają Finalizetej Disposemetody? W jakich sytuacjach zastosowałbyś Finalizemetodę zamiast Disposemetody i
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...
Coś jak: using (IDisposable disposable = GetSomeDisposable()) { //..... //...... return Stg(); } Uważam, że nie jest to właściwe miejsce na oświadczenie zwrotne,
Zacznij od tych prostych zajęć ... Powiedzmy, że mam prosty zestaw klas, taki jak ten: class Bus { Driver busDriver = new Driver(); } class Driver { Shoe[] shoes = { new Shoe(), new Shoe() }; } class Shoe { Shoelace lace = new Shoelace(); } class Shoelace { bool tied = false; } A Busma...
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 :...
Chcę uruchomić zadanie w wątku w tle. Nie chcę czekać na zakończenie zadań. W .net 3.5 zrobiłbym to: ThreadPool.QueueUserWorkItem(d => { DoSomething(); }); W .net 4 TPL jest sugerowanym sposobem. Typowy zalecany wzór, który widziałem, to: Task.Factory.StartNew(() => { DoSomething();...
Utworzyłem niestandardową kontrolkę użytkownika WPF, która jest przeznaczona do użytku przez inną firmę. Mój formant ma prywatnego członka, który jest jednorazowy i chciałbym mieć pewność, że jego metoda usuwania będzie zawsze wywoływana po zamknięciu zawierającego okno / aplikacji. Jednak...
Moim głównym problemem jest to, że kiedy usingwywołuje Disposea StreamWriter, usuwa również BaseStream(ten sam problem z Close). Mam obejście tego problemu, ale jak widzisz, wymaga to skopiowania strumienia. Czy można to zrobić bez kopiowania strumienia? Ma to na celu pobranie zawartości ciągu...
Mam następujący kod using(MemoryStream ms = new MemoryStream()) { //code return 0; } dispose()Metoda jest wywoływana na końcu usingzestawienia szelki }prawda? Skoro ja returnprzed końcem usingoświadczenia, czy MemoryStreamprzedmiot zostanie zutylizowany prawidłowo? co się tutaj...
Kiedy powinienem zaimplementować IDispose w klasie, a nie w destruktorze? Przeczytałem ten artykuł , ale nadal nie rozumiem. Zakładam, że jeśli zaimplementuję IDispose na obiekcie, mogę wyraźnie go „zniszczyć”, zamiast czekać, aż zrobi to garbage collector. Czy to jest poprawne? Czy to...
Czy istnieje metoda lub inny lekki sposób sprawdzenia, czy odniesienie dotyczy usuniętego obiektu? PS - To tylko ciekawostka (śpij dobrze, nie w kodzie produkcyjnym). Tak, wiem, że mogę złapać ObjectDisposedExceptionpróbę uzyskania dostępu do członka obiektu.