当前位置:  开发笔记 > 编程语言 > 正文

Reactive Extensions超时不会停止序列?

如何解决《ReactiveExtensions超时不会停止序列?》经验,为你挑选了0个好方法。

我试图让一个IObservable返回true如果一个UDP消息在最后5秒,如果发生超时被接收,一个返回false.

到目前为止我有这个:

public IObservable GettingUDPMessages(IPEndPoint localEP)
{
    var udp = BaseComms.UDPBaseStringListener(localEP)
        .Where(msg => msg.Data.Contains("running"))
        .Select(s => true);

    return Observable
        .Timeout(udp, TimeSpan.FromSeconds(5))
        .Catch(Observable.Return(false));
}

这个问题是: -

一旦返回false,序列就会停止

我只是真的需要truefalse改变状态.

我可以使用a Subject但是UDPBaseStringListener当没有更多订阅者时我需要小心处理observable.

更新

每次我收到UDP消息,我都希望它返回一个true.如果我在最近5秒内没有收到UDP消息,我希望它返回一个false.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有