我做的一个应用程序。。
有六七个pictureBox
每次加载图片的时候,感觉很快,而不是一下子全出来。。
而背景图比这还大,显示就快多了。。如何解决。。
有六七个pictureBox
每次加载图片的时候,感觉很快,而不是一下子全出来。。
而背景图比这还大,显示就快多了。。如何解决。。
解决方案 »
- 查找与替换
- 大家帮忙看下c# SerialPort控件短信猫读取数据不完整
- javascript实现当按"回车"时,相当于调用页面上的button按扭的Onclick事件如何写?
- 怎么实现对数据库每阁一分查询看其是否更新,如果更新了数据库的数据则把更新的数据select出来放到一个xml里,发送到指定的发机器?
- 字符串处理高手请帮忙,如何将英语句子标准化?
- 因网速慢,多次点击造成数据重复,该如何防止?
- 系统还原之后treeview不能显示?
- 请问,如何用C/S结构连接SQl Server数据库?
- 关于datagrid?
- C#画图在运行程序中不显示
- 求组合问题
- C#与EXCEL文件导入导出的问题
以及backgroundworker
如果是在运行时加载的,在初始化六个picturebox之前,调用 this.SuspendLayout();完成后再调用this.ResumeLayout(false); 减少界面刷新;如果实际图形文件较大,可以考虑嵌入资源或通过双缓存预加载到内存中,使用时直接给picturebox
而PICBOX 小小的图加载也会有延时
没有编译的当然慢了。。
设成背景的快,说明是已经编译过了。
要想快,可以尝试把图片放在资源文件里。 Resource ...
硬盘的读取速度可能是个瓶颈b、可能lz希望同时显示7张图片,可以先定义Image类型的私有变量
用GetThumbnailImage方法得到图片的缩略图。
然后,将每个Image类型的变量赋值给7个pictruebox控件,这样就同步了。
因为,7个pictruebox控件在直接从硬盘加载时,代码的执行是有先后顺序的,而且是同类型控件的相同方法的调用,所以会不同步的显示。
就要预先加载到一个IMAGE数组里,要的时候,再从数组里给要是放在资源文件的话(因为生产EXE文件的话会一起包含在EXE文件里),
可以用一个线呈
例如:
1.创建一个全局的EventWaitHandle ew= new (.....)//俺没看帮助,忘了构造函数
2.threadProc需要一个死循环,
3.在其他线程里,如果特定的条件发生就::ew.set();
4.线程不能被abort,一旦被终止,就不能继续使用该线程了,除非在西够函数里调用
void threadProc(){
do{
ew.wait();//无限期等待,等待其他线程发来的set()switch(pictrueIndex){
pictrueIndex//代指图片的索引
case 0: //index代指图片的
//do work;
breal;
case 1:
//do other work;
break;
}
}while(true);}
this.SetStyle(ControlStyles.AllPaintingInWmPaint |
ControlStyles.DoubleBuffer |
ControlStyles.UserPaint, true);
如何加速GDI+处理图片速度?