我有以下代码:
MJPEGStream stream = new MJPEGStream("http://192.168.88.252/cgi-bin/mjpeg?resolution=1920x1080&quality=1&page=1517608886020&Language=0");
stream.NewFrame += Stream_NewFrame;
stream.Start();
和
private void Stream_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
try
{
Bitmap bitmap = eventArgs.Frame.Clone() as Bitmap;
pictureBox1.Image = bitmap;
}
catch (Exception e)
{
}
}
流是否有泄漏的可能性?我意识到C盘(Windows)上的磁盘空间很快就消失了。我知道这可以通过流,但如何清除引用或从临时文件中清除该数据? GC.Collect似乎无法正常工作。如果我关闭流,那么所有空间都会再次返回。我坚持这个问题......
我在位置C:\ Windows \ Temp中找到了4个名为httC18F.tmp,httBD96.tmp,httC411.tmp,httBDE5.tmp的文件,并且自身权重增加(每个文件31 MB,然后255 MB ...)
答案 0 :(得分:0)
您需要在替换之前处理图片框中的当前图像,这样:
pictureBox1.Image.Dispose();
pictureBox1.Image = bitmap;
请确保首先在图片框中设置默认图片,以避免图片在第一帧时为空。