我有一个 INotifyPropertyChanged 对象 Foo。我使用 Rx 的 FromEvent 方法将 Foo 转换为可观察的事件流:
var myFoo = new Foo();
var eventStream = Observable.FromEvent<PropertyChangedEventArgs>(myFoo, "PropertyChanged");
现在我想听一个特定的属性改变了,如果.Progress == 100,取消订阅:
eventStream
.Where(e => myFoo.Progress == 100)
.Subscribe(OnFooFinished);
当 Progress == 100 时如何取消订阅?如果我在 .Where 子句之后添加一个 .Take(1) 调用,那会自动取消订阅吗?