我在我的应用程序中使用了 System.Windows.Forms.Timer,它触发了一种将新数据添加到四个 LiveCharts 的方法。间隔设置为 1000 毫秒。它在前一两分钟内运行良好,但随后间隔变得越来越大,10 分钟后它仅每 15 秒左右触发一次。我尝试过使用不同的计时器,但没有任何运气。可能是应用程序/LiveCharts 的性能太差了,因为计时器在 UI 线程上运行,它必须等待应用程序“准备好”?
谢谢!
定时器设置
graphRefreshTimer = new System.Windows.Forms.Timer();
graphRefreshTimer.Interval = 1000;
graphRefreshTimer.Tick += new EventHandler(refreshUI);
graphRefreshTimer.Start();
refreshUI(基本上只是将新的 ChartValues 添加到 LiveCharts。运行最多需要 100 毫秒)
//...
B1VoltageValues.Add(new MeasureModel
{
DateTime = now,
Value = Convert.ToDouble(B1.Voltage) / 1000
});
B1CurrentValues.Add(new MeasureModel
{
DateTime = now,
Value = Convert.ToDouble(B1.Current) / 1000
});
B1ChargingCapacityValues.Add(new MeasureModel
{
DateTime = now,
Value = Convert.ToDouble(B1.getChargeCapIfTrue()) / 1000
});
B1DischargingCapacityValues.Add(new MeasureModel
{
DateTime = now,
Value = Convert.ToDouble(B1.getDischargeCapIfTrue()) / 1000
});
B1EnergyValues.Add(new MeasureModel
{
DateTime = now,
Value = Convert.ToDouble(B1.Energy) / 1000
});
//...