使用对象解决方案WPF进行委派

时间:2012-10-10 17:12:43

标签: wpf object delegates

我们找到了解决这个问题的方法

以下代码可能会帮助您解决从另一个线程更新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。 然而,当我们使用对象时,我们得到了:

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

0 个答案:

没有答案