Stream.Dispose Metoda

Definicja

Zwalnia wszystkie zasoby używane przez obiekt Stream.Releases all resources used by the Stream object.

Przeciążenia

Dispose()

Zwalnia wszelkie zasoby używane przez element Stream.Releases all resources used by the Stream.

Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element Stream i opcjonalnie zwalnia zasoby zarządzane.Releases the unmanaged resources used by the Stream and optionally releases the managed resources.

Dispose()

Zwalnia wszelkie zasoby używane przez element Stream.Releases all resources used by the 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ń przez zapisanie zmian w magazynie zapasowym i zamknięcie strumienia w celu zwolnienia zasobów.This method disposes the stream, by writing any changes to the backing store and closing the stream to release resources.

Wywołanie Dispose pozwala na przydzielenie zasobów używanych przez Stream do innych celów.Calling Dispose allows the resources used by the Stream to be reallocated for other purposes. Aby uzyskać więcej informacji na temat Dispose, zobacz Oczyszczanie zasobów niezarządzanych.For more information about Dispose, see Cleaning Up Unmanaged Resources.

Uwagi dotyczące dziedziczenia

Umieść całą logikę oczyszczania dla obiektu Stream w Dispose(Boolean).Place all cleanup logic for your stream object in Dispose(Boolean). Nie należy przesłaniać Close().Do not override Close().

Należy zauważyć, ż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.Note that because of backward compatibility requirements, this method's implementation differs from the recommended guidance for the Dispose pattern. Ta metoda wywołuje Close(), a następnie wywołuje Dispose(Boolean).This method calls Close(), which then calls Dispose(Boolean).

Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element Stream i opcjonalnie zwalnia zasoby zarządzane.Releases the unmanaged resources used by the Stream and optionally releases the managed resources.

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.true to release both managed and unmanaged resources; false to release only unmanaged resources.

Uwagi

Należy zwolnić wszystkie zasoby, określając true dla disposing.You should release all resources by specifying true for disposing. Gdy disposing jest true, strumień może również zapewnić, że dane są opróżniane do buforu bazowego i uzyskiwać dostęp do innych obiektów, które można sfinalizować.When disposing is true, the stream can also ensure data is flushed to the underlying buffer, and access other finalizable objects. Może to nie być możliwe, gdy zostanie wywołana z finalizatora z powodu braku kolejności wśród finalizatorów.This may not be possible when called from a finalizer due a lack of ordering among finalizers.

Jeśli strumień używa dojścia systemu operacyjnego do komunikacji ze źródłem, rozważ użycie podklasy SafeHandle do tego celu.If your stream is using an operating system handle to communicate with its source, consider using a subclass of SafeHandle for this purpose.

Ta metoda jest wywoływana przez publiczną metodę Dispose i metodę Finalize.This method is called by the public Dispose method and the Finalize method. Metoda Dispose wywołuje chronioną metodę Dispose z parametrem disposing ustawionym na wartość true.Dispose invokes the protected Dispose method with the disposing parameter set to true. Finalize wywołuje Dispose z disposingem ustawionym na false.Finalize invokes Dispose with disposing set to false.

Uwagi dotyczące dziedziczenia

W klasach pochodnych nie Przesłaniaj metody Close(), zamiast tego należy umieścić całą logikę oczyszczania strumienia w metodzie Dispose(Boolean).In derived classes, do not override the Close() method, instead, put all of the Stream cleanup logic in the Dispose(Boolean) method.

Dispose() mogą być wywoływane wiele razy przez inne obiekty.Dispose() can be called multiple times by other objects. 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 ramach wcześniejszego wywołania do Dispose().When overriding Dispose(Boolean), be careful not to reference objects that have been previously disposed of in an earlier call to Dispose(). Aby uzyskać więcej informacji na temat implementowania Dispose(Boolean), zobacz implementowanie metody Dispose.For more information about how to implement Dispose(Boolean), see Implementing a Dispose Method.

Aby uzyskać więcej informacji na temat Dispose() i Finalize(), zobacz Oczyszczanie zasobów niezarządzanych.For more information about Dispose() and Finalize(), see Cleaning Up Unmanaged Resources.

Dotyczy