public static void TestDisposableAsObservable() { Console.WriteLine(DateTime.Now); var disposable = new BaseDisposable(); var observable = disposable.AsObservable <int>(() => 42).Timestamp(); observable.Subscribe(i => Console.WriteLine("ob 1 Next " + i), () => Console.WriteLine("ob 1 Completed")); var sub = observable.Subscribe(i => Console.WriteLine("ob 2 Next " + i), () => Console.WriteLine("ob 2 Completed")); Task.Delay(1000).Wait(); sub.Dispose(); Task.Delay(1000).Wait(); disposable.Dispose(); Task.Delay(1000).Wait(); observable.Subscribe(i => Console.WriteLine("ob 3 Next " + i), () => Console.WriteLine("ob 3 Completed")); }