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()см. в разделе Очистка неуправляемых ресурсов.