【发布时间】:2014-01-29 16:55:40
【问题描述】:
我有一个函数,它返回一个字节数组,其中包含来自摄像机的实时 bmp img 数据(包括标题)。 我将该数组写入 MemoryStream 对象。 该对象,我传递给一个 Image 对象构造函数,该构造函数将传递给一个 PictureBox。
tl;博士:
byte[] AoB = GetImage();
MemoryStream ms = new MemoryStream();
ms.Write(AoB, 0, AoB.Length);
pictureBoxImage.Image = Image.FromStream(ms);
ms.Dispose();
所有这些都是在一个延迟为 200 毫秒 (5fps) 的计时器中完成的。 它可以正常工作大约一两分钟,直到 OutOfMemory 异常。 出于某种原因,即使我处理掉了使用的内存,它也会不断生成新的内存。 我也尝试将 ms 声明为全局并每次都刷新它,但仍然不行。 如何在使用相同的内存空间时流式传输图像?
【问题讨论】:
-
字节数组有多大?
-
你的问题可能是你的
Dispose版本没有发布byte[]:stackoverflow.com/a/4274769/27678
标签: c# out-of-memory