Λοιπόν, έχουμε ένα ObservableCollection που λέγεται Feeds και περιέχει κάποια URLs που είναι RSS Feeds. Φορτώνω το feed και το περνάω από ένα async process που ξεχωρίζει δύο links για κάθε item του feed. Αυτά τα ρίχνει σε ένα ReactiveCollection και μόλις πέσουν μέσα τα τσιμπάει ο subscriber του ItemsAdded και τα περνάει από ένα δεύτερο process. Δουλεύει μια χαρά. Το θέμα είναι ότι ο subscriber περιμένει συνεχώς για νέα items οπότε δεν μπορώ να ξέρω πότε έχει τελειώσει η διαδικασία. Υπάρχει τρόπος να το βελτιώσω ώστε μπορώ να ξέρω πότε έχει τελειώσει;
source = Feeds.ToObservable();
resourceList = new ReactiveUI.ReactiveCollection<string>();
var source2 = resourceList.ToObservable();
IObserver<Feed> obs1 = Observer.Create<Feed>
(
(x) =>
{
ProcessFeed(x);
},
(ex) => Debug.WriteLine("OnError :: " + ex.Message),
() => Debug.WriteLine("ProcessFeed Completed")
);
resourceList.ItemsAdded.Subscribe(x =>
{
ProcessUrl(x);
}, () => Debug.WriteLine("ProcessUrl Completed"));
IDisposable sub1 = source.Subscribe(obs1);
sub1.Dispose();
Vir prudens non contra ventum mingit