Rx.NET:直到指定的计数或计时器结束
Rx.NET: Take until specified count or timer elapsed
我有一个接收 Observable
通知的解决方案,直到指定计数到达 或 时间阈值已过。另外,我需要知道发生了什么。
想知道是否有更简单的方法(可能不同于 GroupByUntil
)来实现此功能
_values.
.GroupByUntil(_ => true,
i => Observable.Timer(Threshold, _scheduler)
.Amb(i.Buffer(SpecifiedCount).Select(_ => SpecifiedCount)))
// this is for figuring out which one happened: interval elapsed or count filled
.SelectMany(g => g.Count())
// Let's say if count filled first, call Foo()
.Where( i => i == SpecifiedCount )
.Subscribe( _ => Foo() )
您在寻找Observable.Buffer Method (IObservable, TimeSpan, Int32)吗?根据文档
Indicates each element of an observable sequence into a buffer that’s sent out when either it’s full or a given amount of time has elapsed.
你应该会写:
var myObservable=_values.Buffer(Threshold,SpecifiedCount);
Window 也有类似的重载。
我有一个接收 Observable
通知的解决方案,直到指定计数到达 或 时间阈值已过。另外,我需要知道发生了什么。
想知道是否有更简单的方法(可能不同于 GroupByUntil
)来实现此功能
_values.
.GroupByUntil(_ => true,
i => Observable.Timer(Threshold, _scheduler)
.Amb(i.Buffer(SpecifiedCount).Select(_ => SpecifiedCount)))
// this is for figuring out which one happened: interval elapsed or count filled
.SelectMany(g => g.Count())
// Let's say if count filled first, call Foo()
.Where( i => i == SpecifiedCount )
.Subscribe( _ => Foo() )
您在寻找Observable.Buffer Method (IObservable, TimeSpan, Int32)吗?根据文档
Indicates each element of an observable sequence into a buffer that’s sent out when either it’s full or a given amount of time has elapsed.
你应该会写:
var myObservable=_values.Buffer(Threshold,SpecifiedCount);
Window 也有类似的重载。