我应该在使用文件流完成后调用Dispose

时间:2016-09-10 06:49:47

标签: c# memory-leaks filestream

我的应用程序中有轻微的内存泄漏,我想知道当我处理完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吗?或者关闭这两个足够好?

由于

1 个答案:

答案 0 :(得分:2)

您根本不需要拨打Close()Dispose(),因为您已将您的信息流包裹在using block中。

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

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