我的问题已经在Releasing underlying Stream returned by Application.GetResourceStream on WP7被问到了,但我对这个问题有几种不同的看法:
using块。下面是一些代码:
System.Windows.Resources.StreamResourceInfo ri =
App.GetResourceStream(new Uri("Resources/Idioms.txt", UriKind.Relative));
using (System.IO.StreamReader sr = new System.IO.StreamReader(ri.Stream))
{
idioms = sr.ReadToEnd().Split(lineSeps, StringSplitOptions.RemoveEmptyEntries);
}现在StreamReader的close方法(我假设它是实现IDisposable.Dispose的方法)表明它也关闭了底层流(我认为它也实现了IDisposable.Dispose)。
关闭或处理由IO.Stream的Stream属性提供的Stream对象也是如此:
(我应该在构建在流之上的读取器上使用或避免使用using吗?)
发布于 2013-01-02 00:15:06
StreamReader的ctor有一个过载,可以让它避免流被关闭。
此外,您还稍微向后(除非我误解了)。是Dispose方法调用了Close,而不是相反。
https://stackoverflow.com/questions/14111506
复制相似问题