延迟功能可动态延迟IObservable值 [英] Delay function to postpone IObservable values dynamically

查看:118
本文介绍了延迟功能可动态延迟IObservable值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

[该问题与 IObservable / Rx ]

var frequency = TimeSpan.FromMinutes(5);
Result.Delay(frequency).Subscribe(i => Debug.WriteLine("After Fixed Delay"));



可变延迟伪代码



Pseudo-Code for Variable Delay

Result.Delay(GetAsymptotingTime()).Subscribe(i => Debug.WriteLine("After Changing Delay"));

可变延迟代码只被调用一次,只提供第一个值(实际上是a固定值)。

While the code for variable delay compiles it gets called only once, providing only the first value (essentially a fixed value).


  • 如何在动态扩展中动态延迟订阅?

推荐答案

我认为这可行:

source
  .SelectMany(i => Observable.Timer(GetAsymptotingTime()).Select(_=>i))

如果延迟减少,则结果流的顺序可能与原始流的顺序不同。

If your delays are decreasing, the resulting stream may be in a different order to the original stream.

这篇关于延迟功能可动态延迟IObservable值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆