0

我们找到了这个问题的以下解决方案

以下代码可能会帮助您解决从另一个线程更新 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)

我们想用它来更新在不同线程中创建的窗口。但是,当我们使用对象时,我们会得到:

调用线程无法访问此对象,因为不同的线程拥有它。

4

0 回答 0