如何保持热可观察量的计数

本文关键字:观察 何保持 | 更新日期: 2023-09-27 18:31:12

我有以下可观察的。

IObservable<MyDto> observable;

现在为了计算可观察量中的项目数,我不能使用以下代码,因为我的可观察量是热的并且长时间运行,并且永远不会调用对"计数"的订阅。

var count = observable.Count()

我希望每次物品到达时都能获得计数,这是我正在尝试做的事情

observable.Subscribe(o => Console.WriteLine(" Object received "));
observable.Count().Subscribe(c => Console.WriteLine("Current count is " + c.ToString() + " but this is not final count, more are coming"));

我怎样才能做到这一点?

如何保持热可观察量的计数

使用扫描:

observable
    .Scan(0, (count, _) => count + 1)
    .Subscribe(count => Console.WriteLine("Current count is " + count));