2

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

4

1 回答 1

0

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

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

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

垃圾收集器将调用Finalize方法(析构函数),而不是Dispose方法。终结器将调用Dispose(false)不会处理底层流。StreamReader如果您需要直接使用底层流,您应该可以离开范围之外。只要确保在适当的时候手动处理底层流即可。

于 2012-12-16T14:46:11.730 回答