C#程序优化的一些体会
来源:互联网 发布:淘宝的古着衣服能穿吗 编辑:程序博客网 时间:2024/04/30 09:52
主要针对大数据量的操作,界面响应假死或整体慢速的问题。
1、使用多线程在后台操作数据,应对程序界面假死问题。
Thread thread=new Thread(new ThreadStart(Method));thread.Start();
2、数据添加到控件显示的速度问题。例如使用ListView,使用控件的VirtualMode模式。以及其他一些直接映射内存数据到控件的方式。
建立缓存
private static List<ListViewItem> cacheit = new List<ListViewItem>();private void listView1_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e){ try { e.Item = cacheit[e.ItemIndex]; } catch (Exception) { };}
线程中:
开始位置
cacheit.Clear();
listView1.VirtualListSize = 0;
然后使劲的插入数据到cacheit中
最后
listview1.VirtualListSize=cacheit.Count;
避免ListView刷背景闪烁的问题
class ListViewNF : System.Windows.Forms.ListView { public ListViewNF() { // 开启双缓冲 this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); // Enable the OnNotifyMessage event so we get a chance to filter out // Windows messages before they get to the form's WndProc this.SetStyle(ControlStyles.EnableNotifyMessage, true); } protected override void OnNotifyMessage(Message m) { //Filter out the WM_ERASEBKGND message if (m.Msg != 0x14) { base.OnNotifyMessage(m); } } }
3、string 用来做为建立字符串追加的基础时,速度很慢。
例如
string s="";
s+="some"; //反复加到很长的时候速度很慢。。。
需要改用StringBuilder来追加,速度飞一般快。
4、数据库操作,尽量优化SQL查询语句,减少调用次数,好好和数据库用SQL语言沟通,把工作交给数据库去处理吧!!
5、减少反馈进度的操作,如果每个操作都去反馈信息到界面报告进度,会拖慢整体速度,使得在大量数据时降低效率或达几十倍左右。
- C#程序优化的一些体会
- 效率优化的一些体会
- 用C#操作word的一些体会
- Python程序调试的一些体会
- c# 使用ChartDirector绘图的一些个人体会
- 程序的一些小优化
- 一些工作的体会
- Ajax的一些体会
- OnGestureListener的一些体会
- static的一些体会
- 最近的一些体会
- 自己的一些体会
- 编程的一些体会
- OnGestureListener的一些体会
- 最近的一些体会
- GUIskin的一些体会
- 学习的一些体会
- 学习的一些体会
- 建造者模式
- 经由父进程向子进程传送数据
- 在Android中使用Handler和Thread线程执行后台操作
- 观看9期作品展准备过程中的思考
- linux下libiconv库的安装和使用
- C#程序优化的一些体会
- SDL项目常见问题( error LNK2019: 无法解析的外部符号 _main ,该符号在函数 _mainCRTStartup 中被引用)
- redhat-linux下vsftpd的设置
- 30个源码网站
- 委托学习
- GIT环境搭建
- OpenCV2.4 例程三 (求外包圆和外包矩形)
- 面向对象程序设计——继承访问机制
- 信息时代一种做产品的思路