C# 空闲文件流消耗的内存

C# 空闲文件流消耗的内存,c#,.net,file,filestream,C#,.net,File,Filestream,我想创建多个文件流,并且需要将它们保持打开状态-不会有I/O操作。内存消耗是多少?如果我创建大量这样的流,这会影响系统性能吗?简言之:保持文件流打开不是一个好主意,因为它是不受管理的资源 在.NET framework体系结构中,如果代码中没有正确管理,所有未管理的资源都会导致内存大量泄漏 如果你说“我不想让它超出范围。然后垃圾收集器最终会调用Dispose,杀死流。但是我想让流保持打开状态。” 垃圾收集器将调用Finalize方法(析构函数),而不是Dispose方法。终结器将调用Dispos

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

简言之:保持文件流打开不是一个好主意,因为它是不受管理的资源

在.NET framework体系结构中,如果代码中没有正确管理,所有未管理的资源都会导致内存大量泄漏

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


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

我不打算对文件流做任何处理,只需要保持一些打开状态,但其他进程可能会读取文件。在这种情况下,泄漏的不是内存,但是文件句柄。文件句柄?你能详细说明应用程序关闭吗?所有的流都将被处理。如果流保持打开太长时间(空闲),垃圾收集会杀死流吗@phoenix is此讨论回答了您的问题-如果您不使用ope文件流,为什么需要使用它们?@Eugene只是提出疑问我需要处理多文件i/O有些可能不需要,但需要保持打开状态