用C#实现MSCharts的快速绘图

本文关键字:绘图 MSCharts 实现 | 更新日期: 2023-09-27 18:28:32

我需要每1ms使用C#更新MS图表中的FastLine图。我有两个2048个元素的数组,一个用于X值(xValue),另一个用于Y值(yValue)。目前我是这样做的:

chart1.Series[0].Points.Clear();
for (int i = 0; i < 2048; i++)
{
    chart1.Series[0].Points.AddXY(xValue[i], yValue[i]);
}    

问题是这很慢(我需要的速度的5%)。。。

如何以更快、更高效的方式完成

用C#实现MSCharts的快速绘图

你试过这样的东西吗:

    // initialize a connection string   
    string myConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileNameString;
    // define the database query    
    string mySelectQuery="SELECT Name, Sales FROM REPS WHERE RegionID < 3;";
    // create a database connection object using the connection string  
    OleDbConnection myConnection = new OleDbConnection(myConnectionString);
    // create a database command on the connection using query  
    OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection);
    // open the connection  
    myCommand.Connection.Open();
    // create a database reader 
    OleDbDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
    // since the reader implements and IEnumerable, pass the reader directly into
    // the DataBind method with the name of the Column selected in the query    
    Chart1.Series["Default"].Points.DataBindXY(myReader, "Name", myReader, "Sales");

它直接取自DatabaseBindingXY.cs中的MSChart项目。
它可能比在数据集中循环更快。

我建议您下载用于Microsoft Chart Controls 的示例环境