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. FinalizeDispose вызывается с заданным disposing значением false.

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

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

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

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

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