更新饼图控件时UI被冻结

时间:2015-07-04 11:22:00

标签: c# charts windows-runtime windows-store-apps winrt-xaml-toolkit

我正在使用WinRTXAMLToolkit中的图表控件来绘制饼图。屏幕上的图表会使用几个slider控件中的值进行更新。

当滑块值改变时,我调用函数来根据滑块的值计算公式(比如复利)。

然后我更改了图表ItemsSource的{​​{1}}以指向新的数据集。

我正试图让'live'PieChart立即更新。问题是当我不断更改滑块的值时,图表会有1-2秒的延迟再次绘制自己 - 这会使滑块运动“冻结”在一段时间内。

有没有解决这个问题的方法?我可以将图表更新移动到另一个线程,以便UI线程保持空闲并且不会冻结吗?

2 个答案:

答案 0 :(得分:1)

尝试使用其他线程更新它并将其运行为异步。

一种方法是将其插入Update fuction,然后执行:

await Update()

虽然Update和它调用的方法是异步的。

答案 1 :(得分:1)

我认为问题可能是您正在更改ItemsSource。这是一个更密集的操作,因为很多事情都发生在后台。您可以使用ObservableCollection并更新它而不是替换它吗?