Stream.Dispose 方法

定义

释放由 Stream 对象使用的所有资源。

重载

Dispose()

释放由 Stream 使用的所有资源。

Dispose(Boolean)

释放由 Stream 占用的非托管资源,还可以另外再释放托管资源。

Dispose()

Source:
Stream.cs
Source:
Stream.cs
Source:
Stream.cs

释放由 Stream 使用的所有资源。

C#
public void Dispose ();

实现

注解

此方法通过将任何更改写入后备存储并关闭流来释放资源来释放流。

调用 Dispose 允许重新分配 用于其他目的的资源 Stream 。 有关 的详细信息 Dispose,请参阅 清理非托管资源

继承者说明

将流对象的所有清理逻辑置于 中 Dispose(Boolean)。 不要重写 Close()

请注意,由于向后兼容性要求,此方法的实现不同于针对 Dispose 模式的建议指南。 此方法调用 Close(),然后调用 Dispose(Boolean)

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Dispose(Boolean)

Source:
Stream.cs
Source:
Stream.cs
Source:
Stream.cs

释放由 Stream 占用的非托管资源,还可以另外再释放托管资源。

C#
protected virtual void Dispose (bool disposing);

参数

disposing
Boolean

若要释放托管资源和非托管资源,则为 true;若仅释放非托管资源,则为 false

注解

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

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

此方法由公共 Dispose() 方法和 Finalize() 方法调用(如果已重写)。 Dispose()调用参数设置为 truedisposing受保护Dispose方法。 Finalize 调用 , Disposedisposing 设置为 false

继承者说明

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

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

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

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0