2 insanity zhang Insanity_zhang 于 2015.06.05 13:17 提问

100个chart控件实时绘图时,单击单个chart控件显示每个chart控件的放大曲线时总是滞后 1C

我有100个chart控件组成的数据采集界面,一段时间要对这100个单独的chart控件进行数据绘图,单独点击某一个chart控件还能看到每一个chart控件的放大曲线图,遇到的问题就是:恰好在对100个chart控件同时进行绘图时,此时单击任何一个chart控件都会卡住,只到100个chart的绘图过程结束,单个chart的放大界面曲线才能看到,有什么办法能让这两个过程互不影响吗?线程也试了,单个放大曲线界面还是要优先的,希望点击单个chart控件时就能弹出,不需要等待后台100个绘图结束,希望可以得到大师的指点。

5个回答

xuhui7148
xuhui7148   2015.06.05 13:20

请问这个是VB的chart吗?

Insanity_zhang
Insanity_zhang C#的
2 年多之前 回复
gamefinity
gamefinity   Rxr 2015.06.05 13:29

chart那么大的对象,一起现实肯定会卡。建议在每个chart显示的时候才绘制,其他的就停在那里别画了,或者后台线程画

gamefinity
gamefinity 回复XuzhongZhang: 其实不画是最好的,用的时候才画。甚至都不用100个控件,其他的弄个形象一下就可以(如果完全遮挡连形象都不用了)。不用的时候先把数据等的准备好。别因为不画就不准备数据,到了画的时候才去做查询,那样查询的消耗就大了。
2 年多之前 回复
Insanity_zhang
Insanity_zhang 回复Insanity_zhang: 针对单击每个chart控件弹出的放大曲线界面,可以单击下一个或者上一个显示其他的放大曲线,反正点的过程中如果碰到后台的100个chart控件绘图时间时,就会卡。
2 年多之前 回复
Insanity_zhang
Insanity_zhang 目前100个chart的间断绘图是放在timer中绘图的,显示出来以后每隔一段时间就要绘制出新的曲线,其他的如果停在那里不画,最终会影响结束的时间的。后台线程画一定可以避免吗?
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.06.05 13:39

像你这种特殊需求,完全应该自己设计一个chart控件,并且你设计的控件应该一个控件内直接绘制所有的图表,而不是放100个控件。每个控件相当于一个窗口,有自己的消息,这个开销是很大的。

Insanity_zhang
Insanity_zhang 回复caozhy: 就算是自己设计控件,在100个同时绘图的情况下,单击显示放大曲线还是会遇到卡的问题吧
2 年多之前 回复
Insanity_zhang
Insanity_zhang 回复caozhy: 就算是自己设计控件,在100个同时绘图的情况下,单击显示放大曲线还是会遇到卡的问题吧
2 年多之前 回复
Insanity_zhang
Insanity_zhang 回复caozhy: 自己没设计过chart控件,可以说点思路吗?
2 年多之前 回复
caozhy
caozhy 回复XuzhongZhang: 自己设计控件,不是回答你了么
2 年多之前 回复
Insanity_zhang
Insanity_zhang 需求就是想同时看到100个单独采集界面的实时绘图情况,还要再单击每个采集界面时显示放大曲线,现在就是卡的问题解决不了,有别的方式可以满足现在的需求吗?
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.06.05 14:11

自己设计控件,可以针对你的特殊需求做出优化,比如只绘制可见的客户区,不需要像通用控件那样拥有很多属性和判断,因为你绘制的图表是特定外观的。
可以更直接地优化绘图的逻辑。同时,因为你所有的东西都是windowless的,所以可以减少极大的系统开销。

caozhy
caozhy 回复XuzhongZhang: 这个说来话长了。
2 年多之前 回复
Insanity_zhang
Insanity_zhang 回复caozhy: 我没有自己设计过,您那边可以给说点思路吗?
2 年多之前 回复
caozhy
caozhy 回复XuzhongZhang: 你的水平我不清楚。
2 年多之前 回复
Insanity_zhang
Insanity_zhang 回复caozhy: 像我这一般的水平设计这样的一个控件需要多长时间?该如何下手呢?
2 年多之前 回复
caozhy
caozhy 回复XuzhongZhang: 自己设计控件,连文本框都省了。
2 年多之前 回复
Insanity_zhang
Insanity_zhang 每个图的下面还必须得有文本框进行说明。
2 年多之前 回复
Insanity_zhang
Insanity_zhang 感觉好有难度啊,我只会用chart控件实现目前的这种程度。
2 年多之前 回复
caozhy
caozhy 回复XuzhongZhang: 肯定可以,但是程序员必须合格。
2 年多之前 回复
Insanity_zhang
Insanity_zhang 我刚刚传了张照片上去,这样也比较直观,就是要实现这种效果和功能,从您的角度来看,自己设计chart控件肯定是可以实现吗?
2 年多之前 回复
Insanity_zhang
Insanity_zhang   2015.06.05 14:22

图片说明

Csdn user default icon
上传中...
上传图片
插入图片