强制关闭一条小溪

时间:2011-06-10 14:44:14

标签: c# io filestream

我不时会遇到一个问题,我的程序中有一些StreamReaderStreamWriter来读取信息并写入。它们大约99%的时间都是正确的,但偶尔我会得到一个不会关闭的StreamWriter,在一段代码上我已经运行了多次。

如果我发送垃圾邮件,这种情况往往会发生,但我试图找到一种安全的方法来保证蒸汽处理。谁知道怎么做?

3 个答案:

答案 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块。