Вы можете сохранить ссылку на подписку и даже объединить их с CompositeDisposable
, но обычный метод управления временем жизни IObservable
для бесконечного оператора (например, Timer
)используя оператор, который применяет правила завершения к другому, например, Take
(принимать значения x), TakeWhile
(принимать значения, когда f(x)
возвращает значение true) или TakeUntil
(принимать значения до другой последовательности, y , выдает значение или завершает).
Запуск операторов Rx не будет автоматически считываться GC, если они не завершены.Timer
/ Interval
, например, оба рекурсивно планируют свое следующее значение, используя IScheduler
, и экземпляры по умолчанию различных планировщиков доступны через статические свойства Scheduler
.Это делает работающий оператор всегда укоренившимся и поэтому недоступным для GC.