I have a lot of data to process and I don’t want UI to get frozen. So I’d like to add data in a background thread.
Is it possible to append data to XyDataSeries in a separate thread? Is it supposed to handle this safely?
I have a question concerning multithreaded access to the DataSeries:
We implemented an overview for our chart as described here. This works fine when we load data, add it to the series and then display it.
Now, for a certain use case we need to display live data. We implemented this in a background thread. We noticed that after some time the application freezes when the update frequency rises. In the documentation I found this:
NOTE: Considerations when a DataSeries is shared across multiple chart surfaces. Currently only a single parent chart is tracked, so DataSeries.SuspendUpdates() where the DataSeries is shared may have unexpected results.
I guess this is what is happening here…so what is the recommended approach to achieve something like this? Do we have to add the data on the UI thread if we want to have the Overview? Here it says:
When appending Data in a background thread, you cannot share a DataSeries between more than one SciChartSurface. You can still share a DataSeries between more than one RenderableSeries.
Does that mean we should create more different RenderableSeries for the main chart surface and the overview surface that are based on the same DataSeries? Any help would be appreciated!