public void LoadFeedAsync2() { IsLoading = true; var feedClient = new HeiseFeedClient(); var loadingFeedTask = feedClient.DownloadFeedAsync(_cancellationToken.Token); loadingFeedTask.ContinueWith(t => PopulateViewModel(t.Result), CancellationToken.None, TaskContinuationOptions.OnlyOnRanToCompletion, TaskScheduler.FromCurrentSynchronizationContext()); loadingFeedTask.ContinueWith(HandleProblem, CancellationToken.None, TaskContinuationOptions.NotOnRanToCompletion, TaskScheduler.FromCurrentSynchronizationContext()); }
public async Task LoadFeedAsync() { IsLoading = true; var feedClient = new HeiseFeedClient(); try { var loadedFeeds = await feedClient.DownloadFeedAsync(_cancellationToken.Token); var parsedFeeds = loadedFeeds.Select(f => new FeedEntryViewModel(f)); Feeds = new ObservableCollection <FeedEntryViewModel>(parsedFeeds); } catch (AggregateException ex) { MessageBox.Show(ex.InnerExceptions[0].Message); } finally { IsLoading = false; } }