日期:2014-05-19  浏览次数:20774 次

[探讨]一个Dispose的问题,寻求原理
http://community.csdn.net/Expert/topic/5669/5669122.xml?temp=.9081537
相关帖子:如何生成一个很大的文件

我有些困惑在

System.IO.FileStream   Fs   =   File.Create( "D:\\AAA.Txt ");
Fs.Seek(124000000,   SeekOrigin.End);
Fs.WriteByte(0);

Fs.Dispose();

如果没有最后的Dispose,文件的生成会是一个缓慢增大的过程,但是有了它,就会快速生成;——这难道是异步操作,还是关闭了干脆就直接写出了文件大小拉倒了??
对这个东西不熟悉,不大明白原理;

------解决方案--------------------
Dispose();

不就是释放掉对象所有的所有资源并且销毁对象吗?

至于FileStream 那个方法 估计就是给内存分配的资源没有及时释放造成的
------解决方案--------------------
Flush写文件,Close关闭文件并释放内存。因为你Flush之后,你依然允许继续操作文件,所以不会释放内存,只有Close之后才会释放的。