Вот моя наивная попытка, но я считаю, что здесь есть проблема: можно пропустить происходящие события. между окончанием буфера и отправкой обратно в поток пользовательского интерфейса перед повтором.
Код: Выделить всё
Observable.FromEventPattern(
h => new RoutedEventHandler(h),
e => this.btnStart.Click += e,
e => this.btnStart.Click -= e)
.SelectMany(i => source
.StartWith(i)
.Buffer(TimeSpan.FromSeconds(1), new SynchronizationContextScheduler(SynchronizationContext.Current!))
.Take(1))
.Repeat()
.Subscribe(...)
(пожалуйста, не публикуйте решения, не относящиеся к Rx)
Подробнее здесь: https://stackoverflow.com/questions/792 ... extensions
Мобильная версия