Пример #1
0
        private async Task GenerateGlobalCheckpointLatencyChart()
        {
            // Breaks the method into an async method so it can work in peace and be awaited.
            await Task.Delay(1).ConfigureAwait(false);

            var data =
                Data.ReaderStatsBySecond.
                ToList().
                OrderBy(x => x.Key).
                Select(x => new
            {
                AvgPoint = new DataPoint(x.Key, x.Average(z => z.CheckpointDuration)),
                MaxPoint = new DataPoint(x.Key, x.Max(z => z.CheckpointDuration)),
            }).
                ToList();

            LineSeries maxSeries = new LineSeries {
                Title = "Maximum", Color = OxyColors.Firebrick,
            };
            LineSeries avgSeries = new LineSeries {
                Title = "Average",
            };

            maxSeries.Points.AddRange(data.Select(x => x.MaxPoint));
            avgSeries.Points.AddRange(data.Select(x => x.AvgPoint));

            lock (GlobalCheckpointLatencyPlot.SyncRoot)
            {
                GlobalCheckpointLatencyPlot.Series.Clear();
                GlobalCheckpointLatencyPlot.Series.Add(maxSeries);
                GlobalCheckpointLatencyPlot.Series.Add(avgSeries);
            }

            GlobalCheckpointLatencyPlot.InvalidatePlot(true);
        }
Пример #2
0
 private void ResetGlobalCheckpointLatencyPlotButton_ClickHandler(object sender, RoutedEventArgs e)
 {
     GlobalCheckpointLatencyPlot.ResetAllAxes();
 }