我们找到了解决这个问题的方法
以下代码可能会帮助您解决从另一个线程更新gui元素的问题
模块级别
delegate void updateCallback(string tekst);
这是更新元素的方法:
private void UpdateElement(string tekst)
{
if (element.Dispatcher.CheckAccess() == false)
{
updateCallback uCallBack = new updateCallback(UpdateElement);
this.Dispatcher.Invoke(uCallBack, tekst);
}
else
{
//update your element here
}
}
这对于像String Int这样的原始类型工作正常...但是我们想要使用类的实例。
我们的委托声明如下例所示:
delegate void updateCallback(Maps newMap)
我们想用它来更新在不同线程中创建的Window。 然而,当我们使用对象时,我们得到了:
调用线程无法访问此对象,因为不同的线程拥有它。