private static void LoadFeed(object data) { FeedReaderInfo info = data as FeedReaderInfo; try { info.Feed = SyndicationFeed.Load(info.Reader); } catch { info.Feed = null; } }
SyndicationFeed GetFeed(NavBarItem item) { string key = item.Caption; try { if (!FetchedFeeds.ContainsKey(key) || DateTime.Now - LastFeedFetchTime > FeedTTL) { using (XmlTextReader reader = new XmlTextReader(string.Format("{0}", item.Tag))) { FeedReaderInfo info = new FeedReaderInfo(reader); Thread newThread = new Thread(new ParameterizedThreadStart(LoadFeed)); newThread.Start(info); newThread.Join(7000); FetchedFeeds[key] = info.Feed; newThread.Abort(); } LastFeedFetchTime = DateTime.Now; } return(FetchedFeeds[key]); } catch { return(null); } }
SyndicationFeed GetFeed(NavBarItem item) { string key = item.Caption; try { if(!FetchedFeeds.ContainsKey(key) || DateTime.Now - LastFeedFetchTime > FeedTTL) { using(XmlTextReader reader = new XmlTextReader(string.Format("{0}", item.Tag))) { FeedReaderInfo info = new FeedReaderInfo(reader); Thread newThread = new Thread(new ParameterizedThreadStart(LoadFeed)); newThread.Start(info); newThread.Join(7000); FetchedFeeds[key] = info.Feed; newThread.Abort(); } LastFeedFetchTime = DateTime.Now; } return FetchedFeeds[key]; } catch { return null; } }