【发布时间】:2010-10-26 21:34:36
【问题描述】:
基本上,我从 WebService 获取一些数据,在 ResponseCallback 中,我试图用从响应中得到的结果填充 ObservableCollection,但我得到一个 UnauthorizedAccessException“无效的跨线程访问”当我尝试这样做时。
当我得到结果时,填充所述可观察集合的最佳方法是什么?
谢谢!
这是代码:
public ObservableCollection<Person> People { get; set; }
private void ResponseCallback(IAsyncResult asyncResult)
{
HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asyncResult);
string responseString = string.Empty;
using (Stream content = response.GetResponseStream())
{
if (request != null && response != null)
{
if (response.StatusCode == HttpStatusCode.OK)
{
XDocument document = XDocument.Load(content);
var people = from p in document.Descendants()
where p.Name.LocalName == "PersonInfo"
select Person.GetPersonFromXElement(p);
foreach (Person person in people)
{
this.People.Add(person); // this line throws the exception
}
}
}
content.Close();
}
}
【问题讨论】:
标签: c# concurrency windows-phone-7