【发布时间】:2013-03-01 12:45:28
【问题描述】:
当某些条件发生变化时,我有两个流信号。我需要一个 Observable,它会在 所有条件 变为 true 时触发 true。 false 当其中任何一个变成false。如果某些条件是 false 而另一个更改为 false 我不需要引发事件。
这是我的做法:
// Introducing current states
private bool cond1 = false;
private bool cond2 = false;
void MyHandlingMethod(IObservable<bool> c1, IObservable<bool> c2)
{
c1.Subscribe(b => _state1 = b);
c2.Subscribe(b => _state2 = b);
var c3 = c1.Merge(c2).Select(_ => _cond1 && _cond2);
c3.Subscribe(b => /* some action goes here /*);
// ...
}
我想知道这是否是解决我的问题的正确方法以及是否有任何陷阱。例如,由于 rx 的异步特性,c3 订阅在 c1 和 c2 之前触发。
【问题讨论】:
标签: c# boolean system.reactive