首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#连续读取文件怎么释放内存

2012-01-14 
C#连续读取文件如何释放内存?我是用一个for循环连续读取文件,循环体里以下代码string sf 文件路径Fil

C#连续读取文件如何释放内存?
我是用一个
for循环连续读取文件,循环体里以下代码
string sf = "文件路径";
FileStream fs11=new FileStream(sf,FileMode.Open,FileAccess.Read,FileShare.ReadWrite);
StreamReader sr=new StreamReader(fs11);
while(sr.Peek()>0)(读取文件内容)
sr.Close();
fs.Close();
File.Delete(sf);//统计完后删除文件
GC.Collect();

可是好像内存还是往上涨,请高手指点,谢谢!


[解决办法]
在你的for循环里这样写会自动调用Dispose()

C# code
using(FileStream fs11=new FileStream(sf,FileMode.Open,FileAccess.Read,FileShare.ReadWrite),StreamReader sr=new StreamReader(fs11)){   while(sr.Peek()>0)(读取文件内容)  sr.Close();  fs.Close();  File.Delete(sf);//统计完后删除文件 }
[解决办法]
我是用一个
for循环连续读取文件,循环体里以下代码
string sf = "文件路径";
FileStream fs11=new FileStream(sf,FileMode.Open,FileAccess.Read,FileShare.ReadWrite);
StreamReader sr=new StreamReader(fs11);
while(sr.Peek()>0)(读取文件内容)
sr.Close();
fs.Close();
File.Delete(sf);//统计完后删除文件
GC.Collect();

可是好像内存还是往上涨,请高手指点,谢谢! 

从你说的内容来看你已经释放了所使用的对象及相关的内存,sr.Close()基本上等于 sr.Dispose(true);两个重要的对象都被成功释放了。
但你的内存还在往上涨,我建立你在非调试环境下运行你的程序,并且在读取完文件后等一个较长时间看内存占用会不会降低。

热点排行