private static void SubscribeJson <T>(IObserver <T> observer, string url, IDictionary <string, string> parameters, IProgress <Tuple <long, long> > progress = null) { var subscriptionKey = Guid.NewGuid(); var observable = ReactiveClient.Get <T>(url, parameters, progress); var disposal = observable.Finally(() => CleanupSubscription(subscriptionKey)).Subscribe(observer); lock (SyncRoot) { CurrentSubscriptions.Add(subscriptionKey, disposal); } }