0

我在 WPF 中工作,使用 Media Element 和 WPF TeeChart(由 Steema 提供)。这两者都是可见的并同时更新 - 在播放视频时,图表将定期更新以显示与视频中当前位置相关的数据。

问题是 TeeChart 需要很长时间才能更新,这会阻止视频,从而导致播放变得生涩。

我已经对多线程进行了一些试验,试图找到解决方案,但到目前为止还没有运气。我无法指定视频或图表何时更新,事实上我怀疑 WPF 的工作方式是任何 WPF 元素总是被绘制在一起。

谁能想到我能做些什么来解决这个问题?目前我所能想到的就是用 Win32 等效项替换这些元素中的一个或两个,并适当地托管它,但出于多种原因,我将其作为最后的手段。

4

1 回答 1

1

以防万一您仍未解决该问题或供将来参考,您可以优化 TeeChart 的性能,如此处“实时图表”文章中所述:

http://www.teechart.net/reference/articles/index.php

这是一篇 TeeChart VCL 文章,但其中大部分内容也适用于 TeeChart for .NET

另请注意,.NET 的 TeeChart 不是线程安全的。您需要给图表足够的时间来绘制自己。您可以使用 sleep 调用来完成此操作,以便图表绘制在给定时间内完成,或者使用具有 AutoRepaint 属性的异步绘制技术,例如:

tChart1.AutoRepaint = false;
Random r = new Random();
for(int i = 0; i <500; i++)
{
      tChart1[0].Add (i,r.Next(800),Color.Blue);
}
tChart1.AutoRepaint = true;
tChart1.Refresh(); 
于 2009-11-27T15:31:40.443 回答