gpt4 book ai didi

c# - 我们如何在 IObservable 上使用组函数,同时观察未完成或在热的、长时间运行的可观察对象上

转载 作者:行者123 更新时间:2023-11-30 16:16:08 37 4
gpt4 key购买 nike

我有以下 Observable

IObservable<int> observable = Observable.Range(0, 10);

我有以下订阅

observable.Subscribe(v => Console.WriteLine("Received value: " + v));
observable.Sum().Subscribe(s => Console.WriteLine("Sum so far: " + s));

我想要的输出如下

收到的值:0
目前总和:0
收到的值:1
目前总和:1
收到的值:2
到目前为止的总和:3
...
...

但我实际得到的是收到系列最终值后的总和。

我的实际目标是将其融入我有一个持续运行的 Hot observable 给我十进制值的难题中,我必须订阅()到当前的平均值和总和值。

我们将不胜感激。

最佳答案

使用Observable.Scan :

var observable = Observable.Range(0, 10);
observable
.Subscribe(x => Console.WriteLine("Received value: " + x));
observable
.Scan(0, (sum, x) => sum + x)
.Subscribe(sum => Console.Writeline("Sum so far: " + sum));

Observable.Sum 只会发出一个标记,它是整个finished 序列的总和。 Observable.Scan 将在每次从源接收到 token 时发出一个 token 。

关于c# - 我们如何在 IObservable<T> 上使用组函数,同时观察未完成或在热的、长时间运行的可观察对象上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18753658/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com