C# IObservable.为可变间隔生成

C# IObservable.为可变间隔生成,c#,system.reactive,C#,System.reactive,我对使用这个系统还很陌生。反应性很强,不知道我的解决方案是否可以改进。我需要按前一个事件确定的时间间隔订阅一组无休止的事件。我在这里看到了使用IObservable.Generate的其他解决方案,并提出了以下方法,但这是一个好的实践吗 IDisposable updateJob = Observable.Generate( true, _ => true, _ => CheckForUpdate(), _ => _, _ =>

我对使用这个系统还很陌生。反应性很强,不知道我的解决方案是否可以改进。我需要按前一个事件确定的时间间隔订阅一组无休止的事件。我在这里看到了使用
IObservable.Generate
的其他解决方案,并提出了以下方法,但这是一个好的实践吗

IDisposable updateJob = Observable.Generate(
    true,
    _ => true,
    _ => CheckForUpdate(),
    _ => _, 
    _ => NextCheck()).Subscribe();

其中
NextCheck()。。。耸肩另一方面

应该有点像for循环,内置了可选的时间间隔。因此,如果您想迭代整数1-10,在每次迭代之间暂停i*100毫秒,您可以这样做:

var forLoop = Observable.Generate(
    1,
    i => i <= 10,
    i => i + 1,
    i => i,
    i => TimeSpan.FromMilliseconds(i * 100)
)
但是你必须实现这些方法,而且你有一点不必要的意大利面

您的代码看起来更像后者而不是前者。这可能是必要的,取决于你的问题,我真的不知道


您可以清楚地做的一件事是将迭代器类型替换为
Unit
,将值替换为
Unit.Default
。因为您根本没有使用该值,所以最好使用一个明确的无用值来说明这一点。

感谢您提供的示例-帮助我了解我正在使用的内容。
var opaqueForLoop = Observable.Generate(
    GetFirstValue(),
    _ => CheckIfDone(),
    _ => GetNextValue(),
    i => SaveCurrentValue(i),
    _ => GetNextTimespan()
)