Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法从非UI线程更新wpf控件_C#_Wpf_Multithreading_Data Binding - Fatal编程技术网

C# 无法从非UI线程更新wpf控件

C# 无法从非UI线程更新wpf控件,c#,wpf,multithreading,data-binding,C#,Wpf,Multithreading,Data Binding,我知道这个问题已经解决了,但我无法让它发挥作用。有人能帮我解决这个问题吗 这是我的xaml类: namespace Windamow { /// <summary> /// Interaction logic for DynamoWindow.xaml /// </summary> public partial class DynamoWindow : Window { public DynamoWindow() { InitializeC

我知道这个问题已经解决了,但我无法让它发挥作用。有人能帮我解决这个问题吗

这是我的xaml类:

namespace Windamow
{
/// <summary>
/// Interaction logic for DynamoWindow.xaml
/// </summary>
public partial class DynamoWindow : Window
{
    public DynamoWindow()
    {
        InitializeComponent();
    }
    public void setBrowserURL(string URL)
    {
        browser.Source = new Uri(URL);
    }
    public void setBrowserFromString(string HTMLString)
    {
        browser.NavigateToString(HTMLString);
    }
}
}
xaml:


错误消息:

调用线程无法访问此对象,因为其他线程拥有它。问题在于:

var action = new Action(() => mow.window.setBrowserFromString(html));
此代码将尝试从主UI线程访问
窗口
对象,而该对象已在另一个线程上创建并关联到另一个线程,即您自己创建的
t

根据您的用例,您可以简单地尝试以下操作:

public DynamoWindow(string html)
{
    InitializeComponent();

    setBrowserFromString(html);
}
...
if (launch)
{
    Windamow mow = new Windamow(html);

    return mow.window;
}

(未经测试,但你已经知道了)

关联的xaml在哪里?@isi更新了问题。我的错
var action = new Action(() => mow.window.setBrowserFromString(html));
public DynamoWindow(string html)
{
    InitializeComponent();

    setBrowserFromString(html);
}
...
if (launch)
{
    Windamow mow = new Windamow(html);

    return mow.window;
}