我正在尝试为C#中的bool值实现油门扩展。该实现应直接传递false值,但在传递true时进行限制。
大理石图应为:
每1000毫秒取值
F --- T --- F --- F --- T --- T --- F --- C
ThrottleOnTrue(1001 ms)
F --- F --- F --- F --- F --- T --- F --- C
和我当前的实现是>
public static IObservable<bool> ThrottleOnTrue(this IObservable<bool> source, TimeSpan delay) { return source.DistinctUntilChanged().Select(value => value ? Observable.Never<bool>().StartWith(true).Delay(delay) : Observable.Never<bool>().StartWith(false)) .Switch(); }
但是似乎不起作用。我对Rx非常陌生,因此可能有一种更好的方法来实现此扩展。
我正在尝试为C#中的bool值实现油门扩展。该实现应直接传递false值,但在传递true时进行限制。大理石图应为:值每个...
这是一个有趣的问题,我确实想知道这是否可能是XY类问题。无论如何,考虑到您的大理石图,您几乎肯定不需要DistinctUntilChanged()
,否则您将永远不会重复“ F”。