【问题标题】:How do I end a hot observable?如何结束一个热门的 observable?
【发布时间】:2016-07-24 19:47:33
【问题描述】:

如果在特定时间范围内未收到值,我想根据事件结束 observable。

// This will go on forever because it is a hot
// observable based on an event
// If a value has not been produced in, say, 2 seconds
// I would like to stop it and raise an OnCompleted
var observable = Observable.FromEvent(...);

我可以像这样发送TakeUntil,但这将是从订阅开始算起的绝对时间段。我想要的是,如果在生成前一个值后 2 秒内没有返回值,则停止并引发 OnCompleted 事件。

如果 observable 在 2 秒内没有生成任何值,则停止并引发 OnCompleted 事件。

如果客户端代码不必维护这个关于最后一个值的生成时间的状态,我将如何做到这一点?

【问题讨论】:

    标签: c# system.reactive


    【解决方案1】:

    试试这个:

    var query = observable.Timeout(TimeSpan.FromSeconds(2.0), Observable.Empty<int>());
    

    只需将int 替换为您的可观察源的任何类型即可。

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 2017-07-15
      • 1970-01-01
      • 2016-03-05
      • 2013-09-19
      • 1970-01-01
      • 2021-02-05
      • 2019-07-06
      • 1970-01-01
      相关资源
      最近更新 更多