【问题标题】:Using RX (Reactive Extensions) to create 20 events with 30 millisecond delay使用 RX(响应式扩展)创建 20 个事件,延迟为 30 毫秒
【发布时间】:2015-02-21 07:17:20
【问题描述】:

我想编写一个快速触发代码,它会以 30 毫秒的间隔调用我一个函数 20 次。

这是我迄今为止尝试过的:

Observable.Repeat(20).Delay(TimeSpan.FromMilliseconds(30)).Subscribe() 

这对我来说似乎是合乎逻辑的解决方案,但我的应用程序崩溃了,我认为这是因为它永远不会停止。

使用 UniRx 我怎样才能做到这一点? https://rx.codeplex.com/

【问题讨论】:

    标签: c# unity3d system.reactive


    【解决方案1】:

    看起来你想要Observable.IntervalObservable.Take

    Observable.Interval(TimeSpan.FromMilliseconds(30)).Take(20)
    

    此外,您使用的方法并没有按照您认为的那样做。您应该在尝试之前阅读文档。

    【讨论】:

    • 打败我吧,当我看到你的答案时,我刚刚输入完我的答案!
    • 谢谢。这是非常有用的。有点像缓冲区的反义词。
    • 小OT更正:他不应该在尝试之前阅读文档,他应该在发布通过尝试很容易回答的问题之前尝试。 :)
    • 是否可以一遍又一遍地执行此 Observable.Interval(TimeSpan.FromMilliseconds(30)).Take(20) ?例如,如果我想以每 30 毫秒获取下一个 20 的方式缓冲一个流?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    相关资源
    最近更新 更多