Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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#_.net_Vb.net_Filestream_Out Of Memory - Fatal编程技术网

C# 封装另一个流的流的实现

C# 封装另一个流的流的实现,c#,.net,vb.net,filestream,out-of-memory,C#,.net,Vb.net,Filestream,Out Of Memory,好吧,我想我得做一个三部曲,和我在 接下来是第二部分 根据上述帖子的答案-评论,任何计算机在执行我的代码时,迟早都会耗尽内存( 但根据作者的说法,多亏了我找到了一种在哪里申请的方法 BitmapImage保留对的引用 源流(大概是这样的 您可以读取StreamSource属性 在任何时候),因此它保持 MemoryStream对象处于活动状态。 不幸的是,即使 已调用MemoryStream.Dispose, 它不会释放 内存流包装。所以,在这个 在这种情况下,位图正在引用流, 哪个是引用缓冲区

好吧,我想我得做一个三部曲,和我在

接下来是第二部分

根据上述帖子的答案-评论,任何计算机在执行我的代码时,迟早都会耗尽内存(

但根据作者的说法,多亏了我找到了一种在哪里申请的方法

BitmapImage保留对的引用 源流(大概是这样的 您可以读取StreamSource属性 在任何时候),因此它保持 MemoryStream对象处于活动状态。 不幸的是,即使 已调用MemoryStream.Dispose, 它不会释放 内存流包装。所以,在这个 在这种情况下,位图正在引用流, 哪个是引用缓冲区,哪个可能 占用了大量的空间 大型对象堆。请注意 不是真正的内存泄漏;当出现 不再引用位图,好吗 这些对象(最终)将被删除 垃圾已收集。但自从位图 已经制作了自己的私人副本 对于图像(用于渲染),似乎 有这样的设备是相当浪费的 现在,不必要的原始副本 位图仍在内存中

我有几个问题要问。 (在开始投票之前,请记住我是个新手!)

我可以使用WrappingStream类来避免内存不足错误吗? 如果第一个是真的,我怎样才能采用它,并使它与我的朋友一起工作

多谢各位

我可以使用WrappingStream类来避免内存不足错误吗


不,它针对的是另一个问题。

System.Net.Http.Formatting.Internal.DelegatingStream应该符合要求。可惜Microsoft没有在框架中公开此类


我将发布一个对原始问题更有用的答案。