新人求助,使用zedGraph绘图绘图程序卡死

飘尘DH 2014-07-24 03:58:10
上位机接收串口数据,下位机不停发送数据到上位机,当开始打开串口时,程序会卡死1分钟左右,之后恢复正常;有时候调用了pointList.Clear(),后再重新往里面加入数据也会让程序卡死~~
...全文
182 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
飘尘DH 2014-07-24
  • 打赏
  • 举报
回复
引用 12 楼 Q1092926267 的回复:
[quote=引用 11 楼 huang1004943336 的回复:] [quote=引用 10 楼 Q1092926267 的回复:] [quote=引用 8 楼 huang1004943336 的回复:] [quote=引用 7 楼 Q1092926267 的回复:] [quote=引用 5 楼 huang1004943336 的回复:] [quote=引用 2 楼 Q1092926267 的回复:] 你的数据有多少?CS一般数据不多不会卡,你如果在网站上使用zedgraph的话倒是有可能会卡。
应该不存在数据量的问题,我用串口大师只发一个数据过来也是同样的情况。单步调试也用了,在完成所有程序步骤之后,程序还是才出现卡死现象,要很久才能恢复过来[/quote] 所有步骤完成了才出现卡死 那很明显不是接收串口和绑定图像的问题 [/quote] 我觉得应该是绘图部分的问题,我单步调试,结束之后,要很久图像才出来,而且出来的时候已经完成了几次数据的显示。但是又完全找不到原因[/quote] 如果不知道什么原因 只能用排除法了 例如禁用绑定zedgraph控件看界面是不是卡死 如果还是卡死了那就禁用串口 看卡不卡 一直排除下去 就知道哪一块的问题了[/quote] 因为串口时不停在发送数据到上位机,所以在界面卡死再恢复的时候,直接出来了几次数据。如果我在代码中注释掉zedGraph的实时绘图,程序就可以很正常的运行[/quote] 实时绘图的代码贴出来看一下[/quote] 我把代码贴出来了,麻烦帮我看看。谢谢
飘尘DH 2014-07-24
  • 打赏
  • 举报
回复
好无助~~等高手解答
飘尘DH 2014-07-24
  • 打赏
  • 举报
回复
/// <summary> /// 该函数进行界面曲线的更新 /// </summary> /// <param name="pressure">此时收到的压强</param> private void refreshUI(double pressure) { double x = (double)new XDate(DateTime.Now); pointPairListPressure.Add(x, pressure); if (pointPairListPressure.Count > 100) { pointPairListPressure.RemoveAt(0); } zedGraphControl1.AxisChange(); zedGraphControl1.Refresh(); }
six-years 2014-07-24
  • 打赏
  • 举报
回复
引用 11 楼 huang1004943336 的回复:
[quote=引用 10 楼 Q1092926267 的回复:] [quote=引用 8 楼 huang1004943336 的回复:] [quote=引用 7 楼 Q1092926267 的回复:] [quote=引用 5 楼 huang1004943336 的回复:] [quote=引用 2 楼 Q1092926267 的回复:] 你的数据有多少?CS一般数据不多不会卡,你如果在网站上使用zedgraph的话倒是有可能会卡。
应该不存在数据量的问题,我用串口大师只发一个数据过来也是同样的情况。单步调试也用了,在完成所有程序步骤之后,程序还是才出现卡死现象,要很久才能恢复过来[/quote] 所有步骤完成了才出现卡死 那很明显不是接收串口和绑定图像的问题 [/quote] 我觉得应该是绘图部分的问题,我单步调试,结束之后,要很久图像才出来,而且出来的时候已经完成了几次数据的显示。但是又完全找不到原因[/quote] 如果不知道什么原因 只能用排除法了 例如禁用绑定zedgraph控件看界面是不是卡死 如果还是卡死了那就禁用串口 看卡不卡 一直排除下去 就知道哪一块的问题了[/quote] 因为串口时不停在发送数据到上位机,所以在界面卡死再恢复的时候,直接出来了几次数据。如果我在代码中注释掉zedGraph的实时绘图,程序就可以很正常的运行[/quote] 实时绘图的代码贴出来看一下
飘尘DH 2014-07-24
  • 打赏
  • 举报
回复
引用 10 楼 Q1092926267 的回复:
[quote=引用 8 楼 huang1004943336 的回复:] [quote=引用 7 楼 Q1092926267 的回复:] [quote=引用 5 楼 huang1004943336 的回复:] [quote=引用 2 楼 Q1092926267 的回复:] 你的数据有多少?CS一般数据不多不会卡,你如果在网站上使用zedgraph的话倒是有可能会卡。
应该不存在数据量的问题,我用串口大师只发一个数据过来也是同样的情况。单步调试也用了,在完成所有程序步骤之后,程序还是才出现卡死现象,要很久才能恢复过来[/quote] 所有步骤完成了才出现卡死 那很明显不是接收串口和绑定图像的问题 [/quote] 我觉得应该是绘图部分的问题,我单步调试,结束之后,要很久图像才出来,而且出来的时候已经完成了几次数据的显示。但是又完全找不到原因[/quote] 如果不知道什么原因 只能用排除法了 例如禁用绑定zedgraph控件看界面是不是卡死 如果还是卡死了那就禁用串口 看卡不卡 一直排除下去 就知道哪一块的问题了[/quote] 因为串口时不停在发送数据到上位机,所以在界面卡死再恢复的时候,直接出来了几次数据。如果我在代码中注释掉zedGraph的实时绘图,程序就可以很正常的运行
six-years 2014-07-24
  • 打赏
  • 举报
回复
引用 8 楼 huang1004943336 的回复:
[quote=引用 7 楼 Q1092926267 的回复:] [quote=引用 5 楼 huang1004943336 的回复:] [quote=引用 2 楼 Q1092926267 的回复:] 你的数据有多少?CS一般数据不多不会卡,你如果在网站上使用zedgraph的话倒是有可能会卡。
应该不存在数据量的问题,我用串口大师只发一个数据过来也是同样的情况。单步调试也用了,在完成所有程序步骤之后,程序还是才出现卡死现象,要很久才能恢复过来[/quote] 所有步骤完成了才出现卡死 那很明显不是接收串口和绑定图像的问题 [/quote] 我觉得应该是绘图部分的问题,我单步调试,结束之后,要很久图像才出来,而且出来的时候已经完成了几次数据的显示。但是又完全找不到原因[/quote] 如果不知道什么原因 只能用排除法了 例如禁用绑定zedgraph控件看界面是不是卡死 如果还是卡死了那就禁用串口 看卡不卡 一直排除下去 就知道哪一块的问题了
six-years 2014-07-24
  • 打赏
  • 举报
回复
引用 8 楼 huang1004943336 的回复:
[quote=引用 7 楼 Q1092926267 的回复:] [quote=引用 5 楼 huang1004943336 的回复:] [quote=引用 2 楼 Q1092926267 的回复:] 你的数据有多少?CS一般数据不多不会卡,你如果在网站上使用zedgraph的话倒是有可能会卡。
应该不存在数据量的问题,我用串口大师只发一个数据过来也是同样的情况。单步调试也用了,在完成所有程序步骤之后,程序还是才出现卡死现象,要很久才能恢复过来[/quote] 所有步骤完成了才出现卡死 那很明显不是接收串口和绑定图像的问题 [/quote] 我觉得应该是绘图部分的问题,我单步调试,结束之后,要很久图像才出来,而且出来的时候已经完成了几次数据的显示。但是又完全找不到原因[/quote] 完成几次数据的显示???你里面还用了timer控件定时刷新显示?
飘尘DH 2014-07-24
  • 打赏
  • 举报
回复
引用 7 楼 Q1092926267 的回复:
[quote=引用 5 楼 huang1004943336 的回复:] [quote=引用 2 楼 Q1092926267 的回复:] 你的数据有多少?CS一般数据不多不会卡,你如果在网站上使用zedgraph的话倒是有可能会卡。
应该不存在数据量的问题,我用串口大师只发一个数据过来也是同样的情况。单步调试也用了,在完成所有程序步骤之后,程序还是才出现卡死现象,要很久才能恢复过来[/quote] 所有步骤完成了才出现卡死 那很明显不是接收串口和绑定图像的问题 [/quote] 我觉得应该是绘图部分的问题,我单步调试,结束之后,要很久图像才出来,而且出来的时候已经完成了几次数据的显示。但是又完全找不到原因
six-years 2014-07-24
  • 打赏
  • 举报
回复
引用 5 楼 huang1004943336 的回复:
[quote=引用 2 楼 Q1092926267 的回复:] 你的数据有多少?CS一般数据不多不会卡,你如果在网站上使用zedgraph的话倒是有可能会卡。
应该不存在数据量的问题,我用串口大师只发一个数据过来也是同样的情况。单步调试也用了,在完成所有程序步骤之后,程序还是才出现卡死现象,要很久才能恢复过来[/quote] 所有步骤完成了才出现卡死 那很明显不是接收串口和绑定图像的问题
飘尘DH 2014-07-24
  • 打赏
  • 举报
回复
引用 4 楼 Z65443344 的回复:
保证是主线程去读串口了
是主线程读串口,数据接收事件运行与辅助线程
飘尘DH 2014-07-24
  • 打赏
  • 举报
回复
引用 2 楼 Q1092926267 的回复:
你的数据有多少?CS一般数据不多不会卡,你如果在网站上使用zedgraph的话倒是有可能会卡。
应该不存在数据量的问题,我用串口大师只发一个数据过来也是同样的情况。单步调试也用了,在完成所有程序步骤之后,程序还是才出现卡死现象,要很久才能恢复过来
於黾 2014-07-24
  • 打赏
  • 举报
回复
保证是主线程去读串口了
six-years 2014-07-24
  • 打赏
  • 举报
回复
引用 楼主 huang1004943336 的回复:
上位机接收串口数据,下位机不停发送数据到上位机,当开始打开串口时,程序会卡死1分钟左右,之后恢复正常;有时候调用了pointList.Clear(),后再重新往里面加入数据也会让程序卡死~~
你先单步调试 看是哪一步卡,然后再分析原因
six-years 2014-07-24
  • 打赏
  • 举报
回复
你的数据有多少?CS一般数据不多不会卡,你如果在网站上使用zedgraph的话倒是有可能会卡。
於黾 2014-07-24
  • 打赏
  • 举报
回复
放到线程里就好了

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧