[ 这个问题是关于 IObservable / Rx 的 ]
工作固定延迟
var frequency = TimeSpan.FromMinutes(5);
Result.Delay(frequency).Subscribe(i => Debug.WriteLine("After Fixed Delay"));
可变延迟的伪代码
Result.Delay(GetAsymptotingTime()).Subscribe(i => Debug.WriteLine("After Changing Delay"));
当编译变量延迟的代码时,它只被调用一次,只提供第一个值(本质上是一个固定值)。
- 如何在 Reactive Extensions 中使用动态延迟订阅?
最佳答案
看起来有一个新的 .Delay 重载允许在 RX 本身中使用此功能:
来自 http://blogs.msdn.com/b/rxteam/archive/2012/03/12/reactive-extensions-v2-0-beta-available-now.aspx :
var res = input.Delay(x => Observable.Timer(TimeSpan.FromSeconds(x.Length)));
给定用户输入,它会延迟等于输入长度(以秒为单位)的持续时间。换句话说,每个元素的延迟现在可以取决于数据本身。
关于c# - 动态延迟 IObservable 值的延迟函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10071004/