c#怎么处理相对大量的数据?
用winform写的数据分析。数据采集端是一分钟存一次,每次30个开关量,16个模拟量,.data文件。一天一个文件。现在是分析端要针对开关量按时间画条形图,模拟量画曲线...
用winform写的数据分析。数据采集端是一分钟存一次,每次30个开关量,16个模拟量,.data文件。一天一个文件。现在是分析端要针对开关量按时间画条形图,模拟量画曲线。但是绘制图像时如果是显示所有设备的图像时,画完后窗口就发生一下位移,然后再重绘,再移动再重绘。绘图使用一个单独线程的话能消除问题并加速绘图吗?不能的话该怎么做?
展开
展开全部
绘图完成后窗口发生位移?
我揣测下你的意思就是你要实时的使用一个Chart显示数据,Chart显示数据和你的数据获取是2个概念,造成Chart的数据位移是你传入Chart的数据发生了变化,Ok下面是实现思路:
Chart:
1)使用gdi+绘制你要的Chart,Chart内部内置一个Timer,刷新频率开放或者闭合都可以,定义传入的数据接口,就是你要画的条形图的X轴和Y轴数据,这样基本就实现了,一般的Chart还要求有图例,你可以放在左侧或者右侧,
2)使用第三方的Chart,例如zedgraph(写组件可以参照第三方的,他们功能过于强大,有时候可以借鉴下他的原理、思路,设计个符合自己公司业务需求可拓展的组件)
2.数据动态变化,就是根据你上位中采集数据的变化拆装成Chart中的数据对象,原始数据变化了,图形绘画自然会变。
更多追问追答
追问
数据采集和分析不是同步的,分析的是历史数据。想用chart但是死活没导进去,我是用panel自己写算法画的。来回晃动重绘是在点击按钮后程序自己出现的。猜测可能是内存不足?!
追答
1.我弱弱的问一句:你这数据采集,没有数据存储吗,为什么跟上位显示混在一块,数据采集我认为是一个程序的后台服务(即job),你前台从数据端拿数据,运算和数据采集都是在后台做,怎么会内存不够,囧
展开全部
没明白你什么意思,你不能一次读出所有数据,然后统一绘制吗(随便一个绘图控件都可以做这个,自己用GDI画也是可以的),为什么要逐个绘图
更多追问追答
追问
是统一绘制,是程序自己来回晃动重绘,导致软件没法用
追答
多半是你写的算法有问题,你可以先在后台创建画布,在上面画好后再显示出来,或者就直接用ZedGraph这样的控件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你不知道世界上做大量数据分析最好的、最成熟的、免费的 python 吗??、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询