C# DataTable采集的数据多,导致用户界面显示缓慢。

C# DataTable采集的数据多,导致用户界面显示缓慢。
这是一个电池电量信息采集项目,因为随时间增加存储数据膨胀,导致采集数个小时后,用户界面明显有顿卡的感觉。想请教如何处理或者解决这种问题。
期望尽量避免降低采集频率,因为需要绘制电压电流的时间曲线。
再次试验了下,发现DataTable存储数据消耗时间不是问题,主要顿卡现象来自与将DataTable数据绑定到Chart时发生。

因为客户要求绘制起止时间段电压电流曲线,导致数据量大时,绑定(刷新)曲线图消耗大量时间。
即是这样的情况,将存储数据量大的表DataTable绑定到Chart时,消耗时间较长,导致界面顿卡,影响用户体验。
请各位高手帮帮忙,指导指导小弟。

第1个回答  2013-08-02
你有没有考虑把数据存到数据库中
你所有数据存DataTable的话 所有数据都在堆里面在内存里面
占用的内存也比较多
读的时候从数据库中读就行了本回答被提问者和网友采纳
第2个回答  2017-11-04
我现在遇到这样的问题了,请问怎么解决的?能说说吗?谢谢。
第3个回答  2013-08-02
有多大数据量?追问

每两秒采集一次电量信息,并绘制时间——电压曲线和时间——电流曲线。
用到3小时左右,大约2万多个电压电流信息。

追答

那你用什么控件来显示的呢?那么多数据同时放在里面是会很卡的啊,先进点的有类似分页那种效果,用户想看的时候再加载需要的部分。

追问

使用的是Chart控件,因为客户需要从长时间角度来看电压电流的变化趋势。

第4个回答  2013-08-02
你说的这个问题我也遇到过,没有什么好的解决办法,说说我的解决方式吧,我是先加载前200条数据,然后后台多线程去继续读取,依然是小数据量的读取,小数据量的加载,这样会呈现一个缓慢的动态加载效果.这样就不会有一种卡死的假象了
第5个回答  2013-08-02
像这种情况要想用户界面流畅,用多线程或许会好点。追问

采样和画面更新是使用了多线程进行。
顿卡现象在连续采集3个小时后开始出现。
所以估计是数据量造成的,但是采集数据必须保留,采集频率不可降低,所以想请教更好的解决方案。

追答

有没有考虑过把数据放到数据集里(DataSet)

相似回答