Stream.Dispose Stream.Dispose Stream.Dispose Stream.Dispose Method

Определение

Освобождает все ресурсы, используемые объектом Stream.Releases all resources used by the Stream object.

Перегрузки

Dispose() Dispose() Dispose() Dispose()

Освобождает все ресурсы, занятые модулем Stream.Releases all resources used by the Stream.

Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом Stream, а при необходимости освобождает также управляемые ресурсы.Releases the unmanaged resources used by the Stream and optionally releases the managed resources.

Dispose() Dispose() Dispose() Dispose()

Освобождает все ресурсы, занятые модулем 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 ()

Реализации

Комментарии

Этот метод удаляет поток, путем написания любые изменения в резервное хранилище и закрытия потока для освобождения ресурсов.This method disposes the stream, by writing any changes to the backing store and closing the stream to release resources.

Вызов Dispose позволяет ресурсы, используемые Stream перераспределить для других целей.Calling Dispose allows the resources used by the Stream to be reallocated for other purposes. Дополнительные сведения о Dispose, см. в разделе очистки неуправляемых ресурсов.For more information about Dispose, see Cleaning Up Unmanaged Resources.

Примечания для тех, кто наследует этот метод

Поместить всю логику очистки для объекта stream в Dispose(Boolean).Place all cleanup logic for your stream object in Dispose(Boolean). Не следует переопределять Close().Do not override Close().

Обратите внимание на то, что из-за требований обратной совместимости, реализацию этого метода отличается от указанных в руководстве для шаблона удаления.Note that because of backward compatibility requirements, this method's implementation differs from the recommended guidance for the Dispose pattern. Этот метод вызывает метод Close(), который затем вызывает Dispose(Boolean).This method calls Close(), which then calls Dispose(Boolean).

Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом Stream, а при необходимости освобождает также управляемые ресурсы.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)

Параметры

disposing
Boolean Boolean Boolean Boolean

Значение true позволяет освободить управляемые и неуправляемые ресурсы; значение false позволяет освободить только неуправляемые ресурсы.true to release both managed and unmanaged resources; false to release only unmanaged resources.

Комментарии

Должен освободить все ресурсы, указав true для disposing.You should release all resources by specifying true for disposing. Когда disposing является true, также можно обеспечить поток данных в базовый буфер очищается и доступ к другим объектам.When disposing is true, the stream can also ensure data is flushed to the underlying buffer, and access other finalizable objects. Это может оказаться невозможным, при вызове из метода завершения из-за отсутствия порядку среди методов завершения.This may not be possible when called from a finalizer due a lack of ordering among finalizers.

Если ваш поток использует дескриптор операционной системы для взаимодействия со своим источником, рассмотрите возможность использования подкласс SafeHandle для этой цели.If your stream is using an operating system handle to communicate with its source, consider using a subclass of SafeHandle for this purpose.

Этот метод вызывается открытым Dispose метод и Finalize метод.This method is called by the public Dispose method and the Finalize method. Dispose вызывает защищенный Dispose метод с disposing параметру присвоить true.Dispose invokes the protected Dispose method with the disposing parameter set to true. Finalize вызывает Dispose с disposing присвоено false.Finalize invokes Dispose with disposing set to false.

Примечания для тех, кто наследует этот метод

В производных классах, не переопределяющих Close() метод, вместо этого поместите вся логика очистки Stream в 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() может вызываться несколько раз другими объектами.Dispose() can be called multiple times by other objects. При переопределении метода Dispose(Boolean) нужно избегать ссылок на объекты, которые были уничтожены предыдущими вызовами метода Dispose().When overriding Dispose(Boolean), be careful not to reference objects that have been previously disposed of in an earlier call to Dispose(). Дополнительные сведения о том, как реализовать Dispose(Boolean), см. в разделе реализация метода Dispose.For more information about how to implement Dispose(Boolean), see Implementing a Dispose Method.

Дополнительные сведения о Dispose() и Finalize(), см. в разделе очистки неуправляемых ресурсов.For more information about Dispose() and Finalize(), see Cleaning Up Unmanaged Resources.

Применяется к