Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 强行关闭溪流_C#_Io_Filestream - Fatal编程技术网

C# 强行关闭溪流

C# 强行关闭溪流,c#,io,filestream,C#,Io,Filestream,我有时会遇到一个问题,我的程序中有一些StreamReaders和StreamWriters读取和写入信息。它们在99%的时间里都是正确的,但偶尔我会在一段我运行过多次的代码上遇到一个无法关闭的StreamWriter 如果我发送一个函数的垃圾邮件,就会发生这种情况,但我正在试图找到一种安全的方法来保证函数的安全性。有人知道怎么做吗?尝试使用语句执行 这可能很有用: 也可以使用Try块 try { //Declare your streamwriter StreamWriter

我有时会遇到一个问题,我的程序中有一些
StreamReader
s和
StreamWriter
s读取和写入信息。它们在99%的时间里都是正确的,但偶尔我会在一段我运行过多次的代码上遇到一个无法关闭的
StreamWriter


如果我发送一个函数的垃圾邮件,就会发生这种情况,但我正在试图找到一种安全的方法来保证函数的安全性。有人知道怎么做吗?

尝试使用
语句执行

这可能很有用:

也可以使用
Try

try
{
    //Declare your streamwriter
    StreamWriter sw = new StreamWriter(Initialization);
}
catch
{
    //Handle the errors
}
finally
{
    sw.Dispose();
}

在using语句中包装StreamWriter是我通常确保它被处理的方式

using (var writer = new StreamWriter(@"C:\AFile.txt"))
{
    //do some stuff with writer
}

另一种方法是使用
finally
块。

如果流的作用域是本地的,请始终使用以下构造:

using (var stream = new Stream())
{
    ...do stream work here...
}

另一方面,如果您使用流作为类字段,则实现
IDisposable
模式,并在处理类时处理流对象:

“不会关闭”是模糊的。你这是什么意思?什么迹象使你相信它们不会关闭?它是什么意思——“垃圾邮件功能”?在短时间内多次调用该函数?使用streamreader/writer的范围是什么?你能发一些代码吗?是的,我很含糊。我必须道歉。我使用streamreader启动一个流来读取一个文件,然后使用XX.dispose();。每隔一段时间,虽然它不会处理,但我会以“文件正在使用”结束,直到我重新启动我的程序。这就是我试图找出是否存在修复的错误,因为我已经在使用建议的修复。是的。我支持这个。组合中可能有更多的IDispobles。对这些也使用使用模式。
using (var stream = new Stream())
{
    ...do stream work here...
}