Stream.Dispose Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwalnia wszystkie zasoby używane przez Stream obiekt.
Przeciążenia
Dispose() |
Zwalnia wszelkie zasoby używane przez element Stream. |
Dispose(Boolean) |
Zwalnia zasoby niezarządzane używane przez element Stream i opcjonalnie zwalnia zasoby zarządzane. |
Dispose()
- Źródło:
- Stream.cs
- Źródło:
- Stream.cs
- Źródło:
- Stream.cs
Zwalnia wszelkie zasoby używane przez element Stream.
public:
virtual void Dispose();
public void Dispose ();
abstract member Dispose : unit -> unit
override this.Dispose : unit -> unit
Public Sub Dispose ()
Implementuje
Uwagi
Ta metoda usuwa strumień, zapisując wszelkie zmiany w magazynie zaplecza i zamykając strumień w celu wydania zasobów.
Wywołanie Dispose
umożliwia przydział zasobów używanych przez element do ich przydziału Stream do innych celów. Aby uzyskać więcej informacji na temat Dispose
programu , zobacz Czyszczenie niezarządzanych zasobów.
Uwagi dotyczące dziedziczenia
Umieść całą logikę oczyszczania obiektu strumienia w obiekcie Dispose(Boolean). Nie przesłoń Close().
Należy pamiętać, że ze względu na wymagania dotyczące zgodności z poprzednimi wersjami implementacja tej metody różni się od zalecanych wskazówek dotyczących wzorca Dispose. Ta metoda wywołuje Close()metodę , która następnie wywołuje Dispose(Boolean)metodę .
Dotyczy
Dispose(Boolean)
- Źródło:
- Stream.cs
- Źródło:
- Stream.cs
- Źródło:
- Stream.cs
Zwalnia zasoby niezarządzane używane przez element Stream i opcjonalnie zwalnia zasoby zarządzane.
protected:
virtual void Dispose(bool disposing);
protected virtual void Dispose (bool disposing);
abstract member Dispose : bool -> unit
override this.Dispose : bool -> unit
Protected Overridable Sub Dispose (disposing As Boolean)
Parametry
- disposing
- Boolean
Wartość true
, aby zwolnić zasoby zarządzane i niezarządzane, a wartość false
, aby zwolnić tylko zasoby niezarządzane.
Uwagi
Wszystkie zasoby należy zwolnić, określając dla disposing
parametru true
. Gdy disposing
jest true
to , strumień może również zapewnić opróżnianie danych do buforu bazowego i uzyskiwanie dostępu do innych obiektów finalizowalnych. Może to nie być możliwe w przypadku wywołania z finalizatora z powodu braku kolejności wśród finalizatorów.
Jeśli strumień używa uchwytu systemu operacyjnego do komunikowania się ze źródłem, rozważ użycie podklasy SafeHandle w tym celu.
Ta metoda jest wywoływana przez metodę publiczną Dispose() i metodę Finalize() , jeśli została zastąpiona. Dispose() wywołuje metodę chronioną Dispose z parametrem ustawionym disposing
na true
wartość . Finalize
Dispose wywołuje z ustawioną wartością disposing
false
.
Uwagi dotyczące dziedziczenia
W klasach pochodnych nie przesłaniaj Close() metody, zamiast tego umieść całą logikę oczyszczania Stream w metodzie Dispose(Boolean) .
Dispose() może być wywoływana wiele razy przez inne obiekty. Podczas zastępowania Dispose(Boolean)należy zachować ostrożność, aby nie odwoływać się do obiektów, które zostały wcześniej usunięte w poprzednim wywołaniu metody Dispose(). Aby uzyskać więcej informacji na temat implementowania Dispose(Boolean)metody , zobacz Implementowanie metody Dispose.
Aby uzyskać więcej informacji na temat Dispose() i Finalize(), zobacz Czyszczenie niezarządzanych zasobów.