【问题标题】:Should I call Dispose After Im Finished with my File Stream我应该在我完成文件流后调用 Dispose
【发布时间】:2023-04-01 13:00:02
【问题描述】:

我的应用程序有轻微的内存泄漏,我想知道当我处理完 FileStream 和 Streamreader 后,最佳做法是什么。

这是我的代码:

using (var stream = File.Open(e.FullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (var sr = new StreamReader(stream))
{
    //do what I need with the file

     sr.Close();
     stream.Close();  
 }

我应该在流对象和 StreamReader 对象上调用 Dispose 吗?或者在这里关闭两者是否足够好?

谢谢

【问题讨论】:

标签: c# memory-leaks filestream


【解决方案1】:

您根本不需要调用Close()Dispose(),因为您已将流包装在using block 中。

当您到达该块的末尾时,using 块将自动为您处理流。

您的内存泄漏很可能存在于其他地方。

【讨论】:

    猜你喜欢
    • 2011-11-23
    • 2015-09-07
    • 2023-01-10
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 2010-11-17
    相关资源
    最近更新 更多