Поделиться через


Stream.Dispose Метод

Определение

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

Перегрузки

Dispose()

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

Dispose(Boolean)

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

Dispose()

Исходный код:
Stream.cs
Исходный код:
Stream.cs
Исходный код:
Stream.cs

Освобождает все ресурсы, занятые модулем 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.cs
Исходный код:
Stream.cs
Исходный код:
Stream.cs

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

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

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

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

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

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