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

C#Winform PictrueBox高频率切换图片显示太慢问题
因为公司年会要做个抽奖系统,系统要求显示人员头像。我在一个界面上同时显示5个pictureBox控件。按抽奖的时候用time控件,每过500毫秒图片滚动一次。
抽一等奖的时候界面是只显示一个pictureBox的,所以500毫秒滚动一次压力不是很大,滚得还是挺快的。
但是抽四等、五等奖的时候同时需要抽5个名额,也就是界面上会有5个头像同时滚动,但是这样的话,就算把time控件设置成500毫秒滚动一次,也不会像抽一等奖时只有一个pictureBox滚动得快。原因估计就是pictureBox多了,加载得变慢了,所以图片滚动看似就慢了。
请问各位大大们,怎么解决这样的问题?
C#?Winform 图片显示慢

------解决方案--------------------
预先把图片装入内存呢???
------解决方案--------------------
另外使用timer的一个常见、但是许多人视而不见的设计bug,就是在前一个事件处理方法还没有完毕时,又去执行下一个事件处理。

正确的代码是首先在事件处理方法中先对Timer执行Close()方法或者设置enable=false,关闭它。然后处理完,才调用其Start()方法或者设置enable=true,再次启动定时。

------解决方案--------------------
1. 全部载入内存
2. 开一个timer,刷5个人,而不是每个人都开一个timer
------解决方案--------------------
1.用FileStream 读
2.不用 pictureBox 直接窗体paint
3.开窗体 双缓冲
4.优化流程
------解决方案--------------------
LZ问题解决可木有,最近也在搞抽奖的程序呢,解决了赶紧分享下哦,也好让大家学习学习。。。