c# winform listView控件快速插入

来源:百度知道 编辑:UC知道 时间:2024/06/06 02:42:18
项目用要大量的数据插入listView控件,主要还有别的线程更新同一界面的其他数据,有6个定时器,2个UITime用于更新界面数据,4个用于处理后台数据,插入listView控件的数据量一大,就会很卡,请问有什么好方法或者算法解决这个问题吗?
谢谢!谢谢!
用轻量级的线程怎么样才能定时触发事件,或者是更新数据呢?

建议不要使用定时器来搞这个,直接使用轻量级的多线程。
建立五个线程,一个用来更新页面,四个处理后台数据,主线程用作处理界面,这样就可以把你以前写在六个Timer里面的逻辑分拆到六个线程中。不过要注意控制线程的互斥,填充数据时需要为共享给填充UI线程使用的项目加锁。

新建线程并且启动的代码如下,RefreshUi2方法是一个private oid RefreshUi2()里面是更新页面的逻辑:
Thread th1 = new Thread(new ThreadStart(this.RefreshUi2));
th1.Start();

数据最好做缓存,控件插入之前先使用
SuspendLayout暂停
插入完成后
ResumeLayout恢复
看看有没有效果