当前位置:  开发笔记 > 编程语言 > 正文

在WPF中调用Dispatcher的问题

如何解决《在WPF中调用Dispatcher的问题》经验,为你挑选了1个好方法。

我有一些需要从我的后台演示者线程更新的UI代码.所以,我执行以下操作:从我的后台线程,我在UI中设置我的属性:

_ui.ConnectionStatus = "A";

然后,我的设置如下:

public string ConnectionStatus
{
    set
    {
        if (Dispatcher.CheckAccess())
            ConnectionStatusTxt.Content = value;
        else
        {
            Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() =>
                              {ConnectionStatusTxt.Content = value;}));
        }
    }
}

我收到以下错误:

The calling thread cannot access this object because a different thread owns it.

我的理解是Dispatcher负责调用不同的线程,所以这个错误让我感到困惑.谢谢!



1> Patrick Klug..:

另一个问题:什么类型的价值?这是一个字符串?我可以想象,错误可能是该值实际上是您创建的UIElement(可能是Label?),在这种情况下,异常是指值对象而不是您的用户控件.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有