日期:2014-05-17  浏览次数:21341 次

C# picturebox 高频率切换图片显示出现问题,怎么解决?
本帖最后由 qijun1994 于 2013-07-06 15:28:41 编辑
最近在做的一个课程设计,服务器需要把视频拆成图片之后,发送出去;客户端那边则接收图片,显示在picturebox中。图片发送的速度很快时,picturebox也就可以看到连续的图片切换成为视频的效果了。

目前的问题是客户端的picturebox中无法达到预期的目标。如果单发一张图片,客户端是可以接收的,显示没有问题。而服务器把视频拆分为图片之后,发送出去。经过单步调试跟踪之后,服务器已经把视频的一帧图片给拆分出来了,客户端也接收到了被拆分图片的字节流,长度也是对的。到了picturebox的显示阶段,则不能显示了。

会是什么原因呢,内存没有被释放?每张图片大概有100多KB吧,还是客户端的速度跟不上啊。求大神指导

------解决方案--------------------
无代码 神仙帮你去分析。 
------解决方案--------------------
引用:
最近在做的一个课程设计,服务器需要把视频拆成图片之后,发送出去;客户端那边则接收图片,显示在picturebox中。图片发送的速度很快时,picturebox也就可以看到连续的图片切换成为视频的效果了。

目前的问题是客户端的picturebox中无法达到预期的目标。如果单发一张图片,客户端是可以接收的,显示没有问题。而服务器把视频拆分为图片之后,发送出去。经过单步调试跟踪之后,服务器已经把视频的一帧图片给拆分出来了,客户端也接收到了被拆分图片的字节流,长度也是对的。到了picturebox的显示阶段,则不能显示了。

会是什么原因呢,内存没有被释放?每张图片大概有100多KB吧,还是客户端的速度跟不上啊。求大神指导


粘包了吧
------解决方案--------------------
首先你要确保你及时释放了图片上一张显示的图片资源,因为Picturebox显示图片是全部加载到内存中进行显示的,对于的内存增加是正常的,及时你及时释放了图片资源,GC也不是立即回收的,最后一段时间之后强制调用Gc.Collection进行回收
------解决方案--------------------
如果接收数据没有问题,直接从流读取Image.FromStream(new MemoryStream(buffer))
用的什么传输的