当前位置: 首页 > news >正文

winform中chart控件解决显示大量曲线数据卡顿方法——删旧添新法

在这里插入图片描述

前言:

大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发winform窗体程序的时候,有时候会往chart控件中添加大量的数据用于显示曲线,当数据太多时,会出现程序界面卡顿甚至软件崩溃的情况,本文就来帮助大家解决这个问题!

1、示例代码

 public partial class Form1 : Form{List<double> xList = new List<double>();List<double> yList = new List<double>();public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){Run();}int maxCount = 10;private void Run(){Random random = new Random();int val = random.Next(0, 1000);//生成随机数if (yList.Count == maxCount)//判断数量达到上限,则删除一个旧数据{yList.RemoveAt(0);}yList.Add(val);GetxList();UpdateChart();}/// <summary>/// 获取x坐标/// </summary>private void GetxList(){xList.Clear();int count = yList.Count;for (int i = 0; i < count; i++){xList.Add(i + 1);}}/// <summary>/// 显示曲线/// </summary>private void UpdateChart(){this.Invoke(new Action(() =>{chart1.Series[0].Points.Clear();chart1.Series[0].Points.DataBindXY(xList, yList);}));}}

2、删旧添新法

该方法的原理就是,我们设置一个显示数据的上限,比如1000,当曲线显示的数据等于1000时,这时又有新的数据需要显示时,我们先删除一定数量的旧数据,然后添加相等数量的新数据,这样保持显示的数据始终保持在1000个,这样我们就能确保控件不会因为需要显示太多数据而卡顿或者崩溃同时控件显示的数据又是最新的。

3、视频讲解

解决显示大量曲线数据卡顿——删旧添新法

年入30万+C#上位机实战必备教程推荐(点击下方链接即可访问文章)

1、《C#串口通信从入门到精通》
2、《C#与PLC通信从入门到精通 》
3、《C# Modbus通信从入门到精通》
4、《C#Socket通信从入门到精通 》
5、《C# MES通信从入门到精通》
6、《winform控件从入门到精通》
7、《C#操作MySql数据库从入门到精通》


http://www.mrgr.cn/news/94205.html

相关文章:

  • AI自动化编程初探
  • 机器人路径规划、轨迹优化系列课程
  • k8s面经
  • Django与模板
  • 27_Java2DRenderer结合freemarker动态生成图片
  • 【Linux内核系列】:文件系统
  • 本地部署 OpenManus 保姆级教程(Windows 版)
  • 关于WPS的Excel点击单元格打开别的文档的两种方法的探究【为单元格添加超链接】
  • 11 | 给 Gin 服务器添加中间件
  • Spring之生命周期Bean的生成过程
  • 看 MySQL InnoDB 和 BoltDB 如何写磁盘
  • uni-app打包成H5使用相对路径
  • C# Enumerable类 之 集合操作
  • c#面试题整理9
  • linux - ubuntu 使用时一些小问题整理 --- 持续更新
  • 数据结构——单链表list
  • 关于sqlalchemy的ORM的使用
  • Spring Security的作用
  • 浏览器控制台的特殊执行方式,暂存变量的作用域 和 同步/异步行为解释
  • 13 | 实现统一的错误返回