【发布时间】:2016-06-27 11:56:43
【问题描述】:
我使用的是Package,用以下代码打开
Package package = Package.Open(stream, fileMode, fileAccess);
其中stream 基本上是MemoryStream。现在如果我打电话给package.Close(),内存流仍然是打开的。
当我使用重载方法打开时,我输入文件的路径并关闭包,文件句柄被释放。当我打开 StreamReader 并关闭它时,它会释放底层流。
为什么Package 类不释放底层流?
【问题讨论】:
-
当你说它仍然打开时,你的意思是
CanRead/CanSeek/CanWrite属性仍然是 true 还是你仍然可以访问MemoryStream缓冲区?跨度> -
@FedericoDipuma 我有一个以内存流为基类的专用类,我基本上等待流关闭而不是做一些工作(将其写回文件系统)。如果流从未关闭,则不会发生这种情况。