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 调用参数设置为 Disposedisposing 受保护方法 trueFinalize 调用 Disposedisposing 将 设置为 false

继承者说明

在派生类中,不要替代 方法,而是 Close() 将所有 Stream 清理逻辑放在 Dispose(Boolean) 方法中。

Dispose() 可以由其他对象多次调用。 重写 Dispose(Boolean) 时,请注意不要引用在以前调用 Dispose() 时已释放的对象。 若要详细了解如何实现 Dispose(Boolean) ,请参阅实现 Dispose 方法

有关 和 Dispose() 详细信息 Finalize() ,请参阅 清理非托管资源

适用于