Подписки не нужно утилизировать, если источник завершен. В вашем примере вы могли бы распоряжаться подпиской только в том случае, если хотите прекратить перечисление Range
до ее завершения.
Даже в этой ситуации чаще распределяют подписки с помощью оператора, который завершает подписку как часть ее дизайна, например Take
, TakeWhile
, TakeUntil
.
Если вы хотите объединить несколько IDisposable
подписок, CompositeDisposable
предназначен именно для этого:
CompositeDisposable subsriptions = new CompositeDisposable();
subscriptions.Add(Observable.Interval(TimeSpan.FromSeconds(1)).Subscribe());
subscriptions.Add(Observable.Interval(TimeSpan.FromSeconds(1)).Subscribe());
subscriptions.Add(Observable.Interval(TimeSpan.FromSeconds(1)).Subscribe());
subscriptions.Dispose();