我想知道以下代码是否存在内存泄漏问题以及如何解决它。
MemoryStream stream_medium_temp = new MemoryStream();
ms_medium.Position = 0;
ms_medium.CopyTo(stream_medium_temp);
我想将流复制到另一个流。我首先创建了stream_medium_temp实例,该实例已经为其分配了内存。现在我将一个流复制到其中。这是否意味着我初始化stream_medium_temp时分配的内存空间配置不正确,如果是这样,我如何在代码中遇到这种情况。
stream_medium_temp被放置在一个函数内,在该函数中,它通过引用传递。我关注的是当流首次为stream_medium_temp初始化时以及在将流复制到它之后的内存分配。
让我举个例子:
stream_medium_temp初始化 - >内存分配1-50(例如)。 stream_medium_temp获取流复制到它 - >内存分配60-110
如果发生了什么,如何配置1-50内存分配?
感谢。
答案 0 :(得分:1)
您的代码没有任何问题,假设两个MemoryStream最终都是通过using
或.Dipose()
处理的。
您不必手动管理IDisposable
对象分配的内存 - 这就是using
和/或Dispose()
的用途。
请注意,MemoryStream
实际上不会分配任何需要处理的资源,因此在技术上不需要处理。但它继承自Stream
,它实现IDisposable
;因此,它也是IDisposable
,处理任何IDisposable
是一种好习惯。
答案 1 :(得分:0)
当您复制数据时,原始数据仍然存在。
如果您不希望两个数据实例都存在,我建议您在复制数据时删除数据。