qq_15197419
qq_15197419
采纳率100%
2019-07-05 11:33

winform chart实时绘图时出现空白和红叉

40

图片说明这是正常显示。图片说明
曲线图会出现如图2情况。图片说明如图3,图表变成红叉。

串口通过蓝牙获取的数据(放沙袋里的芯片)
1.测试时绘图频率比较高,每秒10次左右。
2.只有曲线图会出现变空白的情况,频率大概几百次绘图会出现一次,可以确定和数据源无关,数据写死依然会出现这种空白现象。低频击打也会出现。

List txData = new List() { 1, 2, 3, 4, 5, 6, 7, 8 ,9,10,11,12,13,14,15,16};
tyData = new List() { 0, 10, 40, 66, 88, 99, 120, 110, 100, 90, 80, 70, 60, 40, 10, 0};
chart1.Series[0].Points.DataBindXY(txData,tyData );
(用固定数据也会出现空白)
3.图表偶尔会变成如图三的红叉,程序也不抛异常(也可以确定和数据源没关系,使用固定数据也会出现)。概率比较小,平均几千次绘图会出现红叉情况(不一定同时两个红叉,曲线图出现概率会大很多)无法确定是不是绘图频率太高导致的,因为出现概率很低,慢速几乎很难出现。出现红叉后会一直显示红叉状态,程序能正常继续运行

想请问下各位大牛什么原因,因为触发概率实在是太低了,又不抛异常
曲线图出现空白的原因可能是什么?
出现红叉的原因可能是什么?或者说出现红叉后有什么办法继续正常显示数据。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • Carrot_H Carrot_H 2年前

    这个是 OnPaint 事件 内部引起的。重写父类事件加一个 try catch 即可屏蔽掉。但是会闪帧。因为数据太快 picbox 的问题。同时检查下 bitmap 对象。不行的化你换 wpf 看看。

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2年前

    红叉说明控件的构造函数没有正确执行。随机偶然出现这种情况,主要是线程并发没有正确同步,代码中存在内存泄露造成的。
    加上try...catch并且输出下异常,看看原因。

    点赞 评论 复制链接分享

相关推荐