下面是我在后面代码中的几行代码:
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)));
}正如您所看到的,当我单击Start Queries按钮时,我希望异步运行一个方法。当它返回该查询的结果时,我希望将RichTextBox "rtbJsonData“的文本设置为结果。然而,目前当我运行它时,我得到了一个异常:
“调用线程无法访问此对象,因为另一个线程拥有它。”
我该怎么做呢?
发布于 2016-03-30 22:39:53
RichTextBox "rtbJsonData“归主线程所有,不能从另一个线程直接访问。
在WPF中,您的模型可以从INotifyPropertyChanged接口派生。对模型所做的任何更改都将在视图中更新。
有关完整示例,请参阅MSDN:https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged(v=vs.110).aspx
这是基于https://msdn.microsoft.com/en-us/library/hh848246.aspx (模型、视图、视图-模型)模式的
https://stackoverflow.com/questions/36312092
复制相似问题