/// <summary> /// Continues loading a list of feed items in a set interval forever. /// </summary> private static void RunFeedLoop(FeedModule feedModule) { while (true) { Thread.Sleep(IntervalDelay); UpdateFeed(feedModule); } }
/// <summary> /// Kicks off a feed module to run in a loop in its own thread. /// </summary> private static void StartFeed(FeedModule feedModule) { if (_feeds.TryAdd(feedModule.SourceName, new List <FeedItem>())) { // update immediately, then kick off task to keep updating UpdateFeed(feedModule); Task.Factory.StartNew(() => RunFeedLoop(feedModule), TaskCreationOptions.LongRunning); } }
/// <summary> /// Tells feed to get its items for update. /// </summary> private static void UpdateFeed(FeedModule feedModule) { _feeds[feedModule.SourceName] = feedModule.GetItems(); }
/// <summary> /// Kicks off a feed module to run in a loop in its own thread. /// </summary> private static void StartFeed(FeedModule feedModule) { if(_feeds.TryAdd(feedModule.SourceName, new List<FeedItem>())) { // update immediately, then kick off task to keep updating UpdateFeed(feedModule); Task.Factory.StartNew(() => RunFeedLoop(feedModule), TaskCreationOptions.LongRunning); } }
public FeedItem(FeedModule source) { SourceName = source.SourceName; }