加载 SyndicationFeed 和 async/await
Load SyndicationFeed and async/await
我们可以通过 async/await 阅读 RSS 吗?
XmlReader reader = XmlReader.Create("http://localhost/feeds/serializedFeed.xml");
SyndicationFeed feed = SyndicationFeed.Load(reader);
有线索吗?
好的伙计们,这是可行的解决方案
private void GetRSS(string rssUrl)
{
Task.Factory.StartNew(() => {
using (XmlReader r = XmlReader.Create(rssUrl))
{
SyndicationFeed feed = SyndicationFeed.Load(r);
Action bindData = () => {
lstFeedItems.ItemsSource = feed.Items;
};
this.Dispatcher.InvokeAsync(bindData);
}
});
}
你的解决方案没有使用async/await,代码太多,我怀疑你的方法在某些情况下容易出现死锁。
就这么办
var reader = XmlReader.Create("http://localhost/feeds/serializedFeed.xml");
var feed = await Task.Run(() => SyndicationFeed.Load(reader));
我们可以通过 async/await 阅读 RSS 吗?
XmlReader reader = XmlReader.Create("http://localhost/feeds/serializedFeed.xml");
SyndicationFeed feed = SyndicationFeed.Load(reader);
有线索吗?
好的伙计们,这是可行的解决方案
private void GetRSS(string rssUrl)
{
Task.Factory.StartNew(() => {
using (XmlReader r = XmlReader.Create(rssUrl))
{
SyndicationFeed feed = SyndicationFeed.Load(r);
Action bindData = () => {
lstFeedItems.ItemsSource = feed.Items;
};
this.Dispatcher.InvokeAsync(bindData);
}
});
}
你的解决方案没有使用async/await,代码太多,我怀疑你的方法在某些情况下容易出现死锁。
就这么办
var reader = XmlReader.Create("http://localhost/feeds/serializedFeed.xml");
var feed = await Task.Run(() => SyndicationFeed.Load(reader));