当使用Application.GetResourceStream访问资源时,它返回StreamResourceInfo类的实例,该类未实现IDisposable。

在WP7设备上处理完流后,是否应该关闭\处置StreamResourceInfo公开的基础流-我不想了解Using或Dispose模式。

一个示例就是使用该方法来访问ZAP软件包中包含的ZIP文件,并且一旦我解压缩了文件,就不再需要Stream实例了。

最佳答案

here提供的代码示例未使用usingClose()Dispose()

由于StreamResourceInfo的文档没有提到Close()Dispose()(而且StreamResourceInfo实际上并不继承自Stream或可能实现这些方法的其他任何东西),所以我认为让对象超出范围并自然地进行垃圾回收是安全的。

我怀疑StreamResourceInfo类具有一个终结器,该终结器会在垃圾回收期间在基础Dispose()对象上调用Stream,但目前我没有Reflector的副本可用于验证这一点。在这方面,IDisposable模式非常健壮。

但是,如果您仍然对这种不确定性感到不满意,可以随时在Close()对象上调用Stream

关于c# - 释放WP7上Application.GetResourceStream返回的基础Stream,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6200732/

10-12 05:28