Я пробовал несколько способов, но не смог вызвать метод подписки:
Способ 1:
var buffer = new List<Kpi>(); buffer.ToObservable().Buffer(TimeSpan.FromMinutes(1), 5).Subscribe( async kpis => { await _retry.ExecuteAsync(() => Process(kpis.ToList())).ConfigureAwait(false); });
Тогда
buffer.Add(new Kpi());
не будет запускать мой метод.
Метод 2: (Примечание: я прочитал определение специальных методов
Empty/Never/Throw
, но, кроме них, я не могу найти способ создать наблюдаемую, которая выдает что-то отличное от примитивных чисел и т. д.)var buffer = Observable.Empty<Kpi>(); buffer.Buffer(TimeSpan.FromMinutes(1), 5).Subscribe( async kpis => { await _retry.ExecuteAsync(() => Process(kpis.ToList())).ConfigureAwait(false); });
Затем
buffer.Publish(new Kpi())
. Опять ничего не происходит
В чем я ошибаюсь?