public static void TestCompletedByDisposable() { var disposable = new BaseDisposable(); var obs = Observable .Interval(TimeSpan.FromSeconds(1)) .CompletedBy(disposable) .Timestamp(); obs.Subscribe(i => Console.WriteLine("ob 1 Next " + i), () => Console.WriteLine("ob 1 Completed")); Task.Delay(2200).Wait(); obs.Subscribe(i => Console.WriteLine("ob 2 Next " + i), () => Console.WriteLine("ob 2 Completed")); Task.Delay(2200).Wait(); var sub = obs.Subscribe(i => Console.WriteLine("ob 3 Next " + i), () => Console.WriteLine("ob 3 Completed")); Task.Delay(2200).Wait(); sub.Dispose(); Task.Delay(2200).Wait(); disposable.Dispose(); }
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")); }