多线程TeeChart&媒体元素

时间:2009-08-21 09:53:46

标签: wpf multithreading mediaelement teechart

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

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

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

有人能想到我能解决这个问题的任何事情吗?目前,我所能想到的是用Win32等效替换这些元素中的一个或两个并适当地托管它,但由于种种原因,我将此作为最后的手段。

1 个答案:

答案 0 :(得分:1)

如果您仍未解决该问题或将来参考,您可以按照“实时图表”文章中的说明优化TeeChart的性能:

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

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

另请注意,TeeChart for .NET不是线程安全的。你需要给图表足够的时间来绘制自己。您可以使用睡眠调用执行此操作,以便在给定时间内完成图表绘制或使用具有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();