代码之家  ›  专栏  ›  技术社区  ›  Adrian Russell

使用反应式扩展保留一系列事件中的最新事件,直到收到最新事件后x秒

  •  1
  • Adrian Russell  · 技术社区  · 14 年前

    我试图理解如何使用反应式扩展来实现下面的场景。我一直在研究的其他解决方案包括管理一系列计时器。。。如果可能的话我希望避免的事情。

    脚本

  • 不断地从不同的对象源接收事件。
  • 在对象源沉默x秒之后,最新事件被推出。
  • 一旦接收到感兴趣的最新ActionRequest,就可以丢弃旧消息
    public class ActionRequest
    {
        public ActionRequest(Guid quoteId, DateTime now)
        {
            QuoteId = quoteId;
            RequestTimestamp = now;
        }
    
        public Guid QuoteId { get; set; }
        public DateTime RequestTimestamp { get; set; }
    
    }
    

    如果您对此有任何想法,我们将不胜感激。

  • 1 回复  |  直到 14 年前
        1
  •  1
  •   Adrian Russell    14 年前

    答案在 RX Forums

    var throttled = observable.GroupBy(tar => tar.Value.QuoteId).SelectMany(g => g.Throttle(TimeSpan.FromMilliseconds(1500)));