Stream.Dispose Метод

Определение

Освобождает все ресурсы, используемые объектом Stream.

Перегрузки

Dispose()

Освобождает все ресурсы, занятые модулем Stream.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом Stream, а при необходимости освобождает также управляемые ресурсы.

Dispose()

Освобождает все ресурсы, занятые модулем Stream.

public:
 virtual void Dispose();
public void Dispose ();
abstract member Dispose : unit -> unit
override this.Dispose : unit -> unit
Public Sub Dispose ()

Реализации

Комментарии

Этот метод удаляет поток, записывая любые изменения в резервное хранилище и закрывая поток для освобождения ресурсов.

Вызов Dispose позволяет перераспределить ресурсы, используемые Stream перераспределенными для других целей. Дополнительные сведения см. в Disposeразделе очистки неуправляемых ресурсов.

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

Поместите всю логику очистки для объекта потока.Dispose(Boolean) Не переопределять Close().

Обратите внимание, что из-за требований к обратной совместимости реализация этого метода отличается от рекомендуемого руководства по шаблону Dispose. Этот метод вызывает Close(), который затем вызывает Dispose(Boolean).

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

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом Stream, а при необходимости освобождает также управляемые ресурсы.

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

Значение true позволяет освободить как управляемые, так и неуправляемые ресурсы; значение false освобождает только неуправляемые ресурсы.

Комментарии

Чтобы освободить все ресурсы, укажите true для disposingпараметра . Когда disposing это trueтак, поток также может обеспечить очистку данных в базовый буфер и доступ к другим завершаемым объектам. Это может быть невозможно при вызове из метода завершения из-за отсутствия упорядочения среди методов завершения.

Если поток использует дескриптор операционной системы для взаимодействия с источником, рассмотрите возможность использования подкласса SafeHandle для этой цели.

Этот метод вызывается открытым Dispose методом и методом Finalize . Dispose вызывает защищенный Dispose метод с заданным параметром disposing true. Finalize вызывается Dispose с заданным disposing значением false.

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

В производных классах вместо этого не переопределяете Close() метод, помещайте в метод всю логику Dispose(Boolean) очистки Stream.

Метод Dispose() может вызываться несколько раз другими объектами. При переопределении метода Dispose(Boolean) нужно избегать ссылок на объекты, которые были уничтожены предыдущими вызовами метода Dispose(). Дополнительные сведения о реализации Dispose(Boolean)см. в разделе "Реализация метода Dispose".

Дополнительные сведения о Dispose() очистке Finalize()неуправляемых ресурсов см. в разделе "Очистка неуправляемых ресурсов".

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