У меня есть наблюдаемый, который посылает данные с фиксированной скоростью каждые 2 секунды некоторому наблюдателю. Я хочу, чтобы по прошествии 2 минут наблюдаемые, которые отправляют данные, будут уничтожать себя после того, как расскажут предмет, который он завершил. Я использую 2 таймера один для испускания данных для 2-секундных интервалов, а другой для общей продолжительности в 2 минуты, чтобы он мог отправить OnComplete
. Мне было интересно, есть ли способ самостоятельно распоряжаться собой через 2 минуты после таймера?Как я могу избавиться от наблюдаемого после установленного времени?
мой код выглядит примерно так:
Observable.Create<>(
observer =>
{
var timer = new Timer();
timer.Elapsed += (s, e) => observer.OnNext(*send some string*);
timer.start();
return Disposable.Empty;
}
)
Я смотрел на [это] (http://reactivex.io/documentation/operators/takeuntil.html). Похоже, он не разрушает источник Observable, если я не ошибаюсь? Я надеялся, что был бы способ уничтожить источник, наблюдаемый после отметки 2 мин. – Armagetin
@ Армагетин - Да, он разрушает наблюдаемый источник. Каждая подписка создает экземпляр всего конвейера, и как только подписка идет, так и трубопровод. – Enigmativity
Спасибо за помощь! – Armagetin