c# - 空闲文件流消耗的内存

标签 c# .net file filestream

我想创建多个 FileStreams 并且需要让它们保持打开状态 - 不会有 I/O 操作。内存消耗是多少?如果我创建大量此类流,这会影响系统性能吗?

最佳答案

简而言之:保持文件流打开不是一个好主意,因为它是非托管资源。

在 .NET Framework 架构中,如果未在代码中正确管理,所有非托管资源都会导致内存大泄漏。

如果你说 - “我不想让它超出范围。然后垃圾收集器最终会调用 Dispose,终止流。但我想保持流打开。”

垃圾收集器将调用Finalize 方法(析构函数),而不是Dispose 方法。终结器将调用 Dispose(false),这将释放底层流。如果您需要直接使用底层流,则让 StreamReader 超出范围应该没问题。只需确保在适当的时候手动处理底层流即可。

关于c# - 空闲文件流消耗的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13902369/

相关文章:

java - java.net.URL 的本地文件协议(protocol)

c# - 如何在 C# 3.5 的父类(super class)中定义强制转换运算符?

c# - 在 Linq to Entities 中获取字符值

c# - 读取文件,并监视新行

java - 将文件存储在对象内

java 无法在 web-inf 上 mk 目录和文件

c# - 'External table is not in the expected format' 异常问题

c# - 使用 .net 的 Socket.io 1.2.1 和 Unity

c# - 在 Windows Mobile 中如何使应用程序在设备启动时启动?

c# - 如何从 C# 分析内存和 CPU 使用情况