我有WPF项目,基本上只是一个图表。我要做的是在后台线程中更新我的图表点,但后来我创建了一个崩溃的新线程。
public void UpdateChart()
{
...
}
Thread newThread = new Thread(UpdateChart());
newThread.Start();
例外:
必须在与DependencyObject相同的线程上创建DependencySource。
答案 0 :(得分:3)
您正面临众所周知的跨线程访问问题。由于对象指针在跨线程上下文中无效,因此一个线程的对象无法访问另一个线程的对象。你可以有多种解决方案。
您可以创建一个可以调用的委托方法。谷歌就此而言,它将产生许多结果
另一种选择是使用线程状态事件,例如完成/进度等。后台工作组件允许进度报告。您可以使用它来更新图表。
另一种方法是使用this.invoke(delegate,params [])系统。它允许您在不同的线程中调用该方法而不会使应用程序崩溃。
在c#中使用跨线程gui更新进行简单的谷歌搜索,您将获得大量资料。如果您需要更多相关信息,请与我们联系。