Oxyplot在方法结束后更新数据

时间:2015-07-05 18:40:44

标签: c# wpf charts invalidation oxyplot

您能否告诉我为什么在最后一次迭代(i = 99)之后更新图表?

    private void music_play_button_Click(object sender, RoutedEventArgs e)
    {
        for (int i = 0; i < 100; i++)
        {
            (hr_plot.Model.Series[0] as LineSeries).Points[0] = new DataPoint(i, HRConstants.HRMin);
            (hr_plot.Model.Series[0] as LineSeries).Points[1] = new DataPoint(i, HRConstants.HRMax);
            System.Threading.Thread.Sleep(10);
            hr_plot.Model.InvalidatePlot(true);
        };
    }

图表应该在每次迭代后更改,而不是在整个循环之后。什么是正确的解决方案?

1 个答案:

答案 0 :(得分:1)

Buttoneventhandler在计算新数据点时阻止UI-Thread。因此,图表只有在事件处理程序完成后才有机会

<强>解决方案: 您可以在eventhandler中创建一个新的dispatchertimer,并在每个timerTick上进行单次迭代计算