我们找到了这个问题的以下解决方案
以下代码可能会帮助您解决从另一个线程更新 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)
我们想用它来更新在不同线程中创建的窗口。但是,当我们使用对象时,我们会得到:
调用线程无法访问此对象,因为不同的线程拥有它。