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