我不时会遇到一个问题,我的程序中有一些StreamReader
和StreamWriter
来读取信息并写入。它们大约99%的时间都是正确的,但偶尔我会得到一个不会关闭的StreamWriter
,在一段代码上我已经运行了多次。
如果我发送垃圾邮件,这种情况往往会发生,但我试图找到一种安全的方法来保证蒸汽处理。谁知道怎么做?
答案 0 :(得分:3)
尝试using
声明MSDN
using (StreamWriter stream = new StreamWriter(Initialization)){
//your code
}
这可能很有用:
Closing Stream Read and Stream Writer when the form exits
您也可以使用Try
阻止
try
{
//Declare your streamwriter
StreamWriter sw = new StreamWriter(Initialization);
}
catch
{
//Handle the errors
}
finally
{
sw.Dispose();
}
答案 1 :(得分:1)
如果流的范围是本地的,请始终使用以下构造:
using (var stream = new Stream())
{
...do stream work here...
}
另一方面,如果你将流作为类字段使用,那么在处理你的类时实现IDisposable
模式并处理你的流对象:IDisposable
答案 2 :(得分:0)
在使用语句中包装StreamWriter是我通常确保它被处理掉的方式。
using (var writer = new StreamWriter(@"C:\AFile.txt"))
{
//do some stuff with writer
}
另一种方法是使用finally
块。