Stream.Dispose Метод

Определение

Освобождает все ресурсы, используемые объектом Stream.Releases all resources used by the Stream object.

Перегрузки

Dispose()

Освобождает все ресурсы, используемые Stream.Releases all resources used by the Stream.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые Stream, и дополнительно освобождает управляемые ресурсы.Releases the unmanaged resources used by the Stream and optionally releases the managed resources.

Dispose()

Освобождает все ресурсы, используемые Stream.Releases all resources used by the Stream.

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

Реализации

Комментарии

Этот метод уничтожает поток, записывая изменения в резервное хранилище и закрывая поток для освобождения ресурсов.This method disposes the stream, by writing any changes to the backing store and closing the stream to release resources.

Вызов Dispose позволяет перераспределить ресурсы, используемые Stream, для других целей.Calling Dispose allows the resources used by the Stream to be reallocated for other purposes. Дополнительные сведения о Disposeсм. в разделе Очистка неуправляемых ресурсов.For more information about Dispose, see Cleaning Up Unmanaged Resources.

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

Поместите всю логику очистки для объекта Stream в Dispose(Boolean).Place all cleanup logic for your stream object in Dispose(Boolean). Не переопределяйте Close().Do not override Close().

Обратите внимание, что из-за требований к обратной совместимости реализация этого метода отличается от рекомендованных рекомендаций для шаблона удаления.Note that because of backward compatibility requirements, this method's implementation differs from the recommended guidance for the Dispose pattern. Этот метод вызывает Close(), который затем вызывает Dispose(Boolean).This method calls Close(), which then calls Dispose(Boolean).

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые Stream, и дополнительно освобождает управляемые ресурсы.Releases the unmanaged resources used by the Stream and optionally releases the managed resources.

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 to release both managed and unmanaged resources; false to release only unmanaged resources.

Комментарии

Необходимо освободить все ресурсы, указав true для disposing.You should release all resources by specifying true for disposing. Если disposing true, поток также может гарантировать, что данные будут сброшены в базовый буфер, и получить доступ к другим окончательным объектам.When disposing is true, the stream can also ensure data is flushed to the underlying buffer, and access other finalizable objects. Это может быть невозможно при вызове из метода завершения из-за отсутствия упорядочения среди методов завершения.This may not be possible when called from a finalizer due a lack of ordering among finalizers.

Если поток использует обработчик операционной системы для связи с источником, рассмотрите возможность использования подкласса SafeHandle для этой цели.If your stream is using an operating system handle to communicate with its source, consider using a subclass of SafeHandle for this purpose.

Этот метод вызывается методом Public Dispose и методом Finalize.This method is called by the public Dispose method and the Finalize method. Dispose вызывает защищенный метод Dispose с параметром disposing, для которого задано значение true.Dispose invokes the protected Dispose method with the disposing parameter set to true. Finalize вызывает Dispose, для disposing задано значение false.Finalize invokes Dispose with disposing set to false.

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

В производных классах не следует переопределять метод Close() вместо этого разместить всю логику очистки потока в методе Dispose(Boolean).In derived classes, do not override the Close() method, instead, put all of the Stream cleanup logic in the Dispose(Boolean) method.

Метод Dispose() может вызываться несколько раз другими объектами.Dispose() can be called multiple times by other objects. При переопределении метода Dispose(Boolean) нужно избегать ссылок на объекты, которые были уничтожены предыдущими вызовами метода Dispose().When overriding Dispose(Boolean), be careful not to reference objects that have been previously disposed of in an earlier call to Dispose(). Дополнительные сведения о реализации Dispose(Boolean)см. в разделе Реализация метода Dispose.For more information about how to implement Dispose(Boolean), see Implementing a Dispose Method.

Дополнительные сведения о Dispose() и Finalize()см. в разделе Очистка неуправляемых ресурсов.For more information about Dispose() and Finalize(), see Cleaning Up Unmanaged Resources.

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