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 仅释放非托管资源。

注解

应通过指定 truedisposing释放所有资源。 当 disposingtrue时,流还可以确保数据刷新到基础缓冲区,并访问其他可完成的对象。 由于终结器之间缺少排序,因此从终结器调用时,可能无法执行此操作。

如果流使用操作系统句柄与其源通信,请考虑使用用于此目的的 SafeHandle 子类。

如果已重写此方法,则由公共 Dispose() 方法和 Finalize() 方法调用。 Dispose()调用受保护的Dispose方法,并将disposing参数设置为trueFinalize使用Dispose,其中disposing设置为false

继承者说明

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

Dispose() 其他对象可以多次调用。 重写 Dispose(Boolean)时,请注意不要引用之前调用 Dispose()中已释放的对象。 有关如何实现 Dispose(Boolean)的详细信息,请参阅 实现 Dispose 方法

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

适用于