使用反应式扩展创建单个事件



我正试图了解.NET Reactive Extensions,我想知道它们是否可以用于以下场景:

在我的WP7应用程序中,我使用SterlingDatabase来保持应用程序设置。当用户修改设置时,我想定期调用Database.Flush()

因此,在我的Property Set方法中,我想启动一个Database.Flush()计时器事件,并在5秒内写入数据库。如果另一个属性被写入,我想重新启动计时器。

我知道我可以用一个定时器对象来做这件事,调用Start()Stop(),但我想知道我是否可以用Rx来做这项工作,以创建一个基本上可以启动和停止的Asycn操作,而不使用定时器?

使用Throttle:

public void AttachFlushes(IObservable<Unit> writes, SterlingDb  db)
{
    writes.Throttle(TimeSpan.FromSeconds(5)).Do(_ => db.Flush()).Subscribe();
}

相关内容

  • 没有找到相关文章