diff options
| -rw-r--r-- | Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX/GraphController.cs | 52 |
1 files changed, 33 insertions, 19 deletions
diff --git a/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX/GraphController.cs b/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX/GraphController.cs index 4934a9013..f5fed3fe4 100644 --- a/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX/GraphController.cs +++ b/Software/Visual_Studio/SideChains/RealTimeGraphX-master/RealTimeGraphX/GraphController.cs @@ -219,30 +219,46 @@ namespace RealTimeGraphX { try { - var pending_list = _pending_series_collection.BlockDequeue(); + List<List<PendingSeries>> pending_lists = new List<List<PendingSeries>>(); - foreach (var pending_series in pending_list) + if (_pending_series_collection.Count == 0) { - if (pending_series.IsClearSeries) - { - _pending_series_collection = new GraphDataQueue<List<PendingSeries>>(); - _to_render.Clear(); - break; - } + Thread.Sleep(TimeSpan.FromSeconds(1)); + continue; + } - if (_to_render.ContainsKey(pending_series.Series)) - { - var s = _to_render[pending_series.Series]; - s.XX.AddRange(pending_series.XX); - s.YY.AddRange(pending_series.YY); - } - else + while (_pending_series_collection.Count > 0) + { + var pending_list = _pending_series_collection.BlockDequeue(); + pending_lists.Add(pending_list); + } + + foreach (var pending_list in pending_lists) + { + foreach (var pending_series in pending_list) { - _to_render[pending_series.Series] = pending_series; + if (pending_series.IsClearSeries) + { + _pending_series_collection = new GraphDataQueue<List<PendingSeries>>(); + _to_render.Clear(); + break; + } + + if (_to_render.ContainsKey(pending_series.Series)) + { + var s = _to_render[pending_series.Series]; + s.XX.AddRange(pending_series.XX); + s.YY.AddRange(pending_series.YY); + } + else + { + _to_render[pending_series.Series] = pending_series; + } } } - if (DateTime.Now > _last_render_time.AddMilliseconds(RefreshRate.TotalMilliseconds) && _to_render.Count > 0) + if (_to_render.Count > 0) + //if (DateTime.Now > _last_render_time.AddMilliseconds(RefreshRate.TotalMilliseconds) && _to_render.Count > 0) { GraphDataPoint min_x = _range.MaximumX - _range.MaximumX; GraphDataPoint max_x = _range.MaximumX; @@ -256,7 +272,6 @@ namespace RealTimeGraphX } else { - Thread.Sleep(RefreshRate); continue; } @@ -350,7 +365,6 @@ namespace RealTimeGraphX catch (Exception ex) { Debug.WriteLine($"Error in RealTimeGraphX:\n{ex.ToString()}"); - Thread.Sleep(RefreshRate); } } else |
