Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.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#_Stream - Fatal编程技术网

C# 流-无法访问已关闭的流

C# 流-无法访问已关闭的流,c#,stream,C#,Stream,我在流中遇到了一个小问题,标题中出现了一个异常 我把它放在一个using语句中,这个语句在一个循环中,我看到的大多数帖子都说要删除using语句并“续订”它: 异常发生在循环的第二次迭代中。我尝试使用语句删除,但没有效果 以下是总体思路: for (blah blah blah) { using (Stream strm = externalStreamProvider.GetStream(some params) { if (stream.Position

我在
流中遇到了一个小问题,标题中出现了一个异常

我把它放在一个
using
语句中,这个语句在一个循环中,我看到的大多数帖子都说要删除
using
语句并“续订”它:

异常发生在循环的第二次迭代中。我尝试使用
语句删除
,但没有效果

以下是总体思路:

for (blah blah blah) 
{
    using (Stream strm = externalStreamProvider.GetStream(some params)
    { 
        if (stream.Position != 0) //exception is here on 2nd iteration
            ...........
    }
}
但是,我使用的是抽象的,所以我不能像
myStream=newstream()
那样重新创建它

我正在使用外部
提供程序,因此无法更改获取
的方式

关于如何解决这个问题有什么想法吗


对于任何含糊不清的内容,我深表歉意,如果有不清楚的地方,请告诉我。

似乎
externalStreamProvider
每次都返回相同的流实例。。。由于您在第一次迭代中关闭了它,它在第二次迭代中失败了

如果您希望在每次迭代中使用相同的流,则应将该流置于循环之外:

using (Stream strm = externalStreamProvider.GetStream(some params)
{
    for (blah blah blah) 
    { 
        if (stream.Position != 0)
            ...........
    }
}
编辑:刚刚看到这个评论:

当在
stream.Position上引发异常时,它是第二次迭代中stream的一个全新实例


在这种情况下,唯一的解释是
externalStreamProvider
返回的流已经关闭;但是问题不在您发布的代码中…

似乎
externalStreamProvider
每次都返回相同的流实例。。。由于您在第一次迭代中关闭了它,它在第二次迭代中失败了

如果您希望在每次迭代中使用相同的流,则应将该流置于循环之外:

using (Stream strm = externalStreamProvider.GetStream(some params)
{
    for (blah blah blah) 
    { 
        if (stream.Position != 0)
            ...........
    }
}
编辑:刚刚看到这个评论:

当在
stream.Position上引发异常时,它是第二次迭代中stream的一个全新实例


在这种情况下,唯一的解释是
externalStreamProvider
返回的流已经关闭;但是问题不在你发布的代码中…

是的,你的问题很模糊。您可以通过添加一些代码来改进它,而不需要任何代码,这很难说anything@tnw是的,我看到编辑了。但我看不到任何代码可供讨论
blah-blah
s和
s隐藏该错误。似乎externalStreamProvider每次都返回相同的流实例。。。因为您在第一次迭代中关闭了它,所以在第二次迭代中失败了second@ThomasLevesque-您应该将“externalStreamProvider每次都返回相同的流实例”作为答案。是的,您的问题很模糊。您可以通过添加一些代码来改进它,而不需要任何代码,这很难说anything@tnw是的,我看到编辑了。但我看不到任何代码可供讨论
blah-blah
s和
s隐藏该错误。似乎externalStreamProvider每次都返回相同的流实例。。。因为您在第一次迭代中关闭了它,所以在第二次迭代中失败了second@ThomasLevesque-您应该将“externalStreamProvider每次都返回相同的流实例”作为答案