Udostępnij za pośrednictwem


Stream.Dispose Metoda

Definicja

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 Disposeprogramu , 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 disposingparametru true . Gdy disposing jest trueto , 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 truewartość . FinalizeDispose wywołuje z ustawioną wartością disposingfalse.

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.

Dotyczy