Загрузите SyndicationFeed и async/await
Можем ли мы читать RSS по async/await?
XmlReader reader = XmlReader.Create("http://localhost/feeds/serializedFeed.xml");
SyndicationFeed feed = SyndicationFeed.Load(reader);
Любая подсказка?
1 ответ
Решение
Ок фолк, вот рабочий раствор
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));