Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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# 在异步线程上更新文本框文本_C#_Wpf_Asynchronous - Fatal编程技术网

C# 在异步线程上更新文本框文本

C# 在异步线程上更新文本框文本,c#,wpf,asynchronous,C#,Wpf,Asynchronous,下面是我在代码背后的几行代码: private static Factual factual = new Factual(FACTUAL_KEY, FACTUAL_SECRET); private void OnStartQueries_Click(object sender, RoutedEventArgs e) { RunAsyncQuery(43.0120, -81.2003, 3000, 25).ContinueWith(task => rtbJsonData.Appen

下面是我在代码背后的几行代码:

private static Factual factual = new Factual(FACTUAL_KEY, FACTUAL_SECRET);

private void OnStartQueries_Click(object sender, RoutedEventArgs e)
{
    RunAsyncQuery(43.0120, -81.2003, 3000, 25).ContinueWith(task => rtbJsonData.AppendText(task.Result));
}

private static async Task<string> RunAsyncQuery(double lat, double lng, int radius, int limit)
{
    return await Task.Run(() => factual.Fetch("places", new Query().WithIn(new Circle(lat, lng, radius)).Limit(limit)));
}
private static Factual Factual=新事实(事实密钥、事实秘密);
开始查询时的专用void\u单击(对象发送方,路由目标)
{
RunAsyncQuery(43.0120,-81.2003,3000,25).ContinueWith(task=>rtbJsonData.AppendText(task.Result));
}
专用静态异步任务RunAsyncQuery(双lat、双lng、整数半径、整数限制)
{
return wait Task.Run(()=>factual.Fetch(“places”,new Query()。在(新的圆(纬度、液化天然气、半径)).Limit(极限))内);
}
因此,正如您看到的,当我单击Start Queries按钮时,我希望异步运行一个方法。当它返回该查询的结果时,我想将RichTextBox“rtbJsonData”的文本设置为结果。但是,当前我运行它时会出现异常:

“调用线程无法访问此对象,因为其他线程拥有它。”

我该怎么做

RichTextBox“rtbJsonData”由主线程拥有,无法从其他线程直接访问

在WPF中,可以从INotifyPropertyChanged接口派生模型。模型上的任何更改都将在视图上更新

有关完整示例,请参见MSDN:

这基于MVVM(模型-视图-模型)模式,

RichTextBox“rtbJsonData”由主线程拥有,不能直接从其他线程访问

在WPF中,可以从INotifyPropertyChanged接口派生模型。模型上的任何更改都将在视图上更新

有关完整示例,请参见MSDN:

这基于MVVM(模型-视图-模型)模式