【发布时间】:2011-09-26 12:50:10
【问题描述】:
我有Foo、Bar 和Baz 类型的三个IObservable。另外,还有一个方法定义为:
void DoWork(Foo foo);
IObservable 在其他地方被定义为Subject,并且OnNext 不时被调用。
只要有新数据可用(由一些 Where 查询定义),我想用最新的 Foo 值调用 DoWork 方法。如果没有生成Foo 值,则不应调用该方法。
最简单的方法是什么?
更具体地说,请参见以下示例。当bar 或baz 发生变化时,我想打电话给DoWork,最新的foo (f.id == 1):
void Wire(IObservable<Foo> foo, IObservable<Bar> bar, IObservable<Baz> baz)
{
foo.Where(f => f.Id == 1)
.Subscribe(f => DoWork(f));
}
【问题讨论】:
-
而 IObservable 和流之间的关系/交互是 ...
-
查看我对主题和 OnNext 的编辑。没什么太花哨的
-
您的意思是当任一
bar或baz发生变化时,您想调用DoWork()? -
是的,当其中一个发生变化时
-
@kshahar - 你为什么使用
Replay?
标签: .net c#-4.0 system.reactive