【发布时间】:2012-02-17 21:21:59
【问题描述】:
我正在尝试使用 .net Observable 类实现一个简单的观察者模式。我的代码如下所示:
Observable.FromEventPattern<PropertyChangedEventArgs>(
Instance.User,
"PropertyChanged")
.Where(e => e.EventArgs.PropertyName == "FirstName")
.ObserveOn(Scheduler.ThreadPool)
.Subscribe(search => OnFirstNameChanged(search.EventArgs));
Observable.FromEventPattern<PropertyChangedEventArgs>(
Instance.User,
"PropertyChanged")
.Where(e => e.EventArgs.PropertyName == "LastName")
.ObserveOn(Scheduler.ThreadPool)
.Subscribe(search => OnLastNameChanged(search.EventArgs));
我希望观察者在后台线程上运行,但我希望它们都在同一个后台线程上运行(对于我们的实际实现,让每个侦听器都在不同的线程上太复杂了)。
即我希望所有 OnXXXChanged 逻辑都在 UI 线程以外的线程上执行,但我想确保它们在同一个线程上以正确的顺序运行,而不是在整个线程池上执行 Observing。
上面应该如何修改?
另外,在一些相关的说明中,是否有任何使用Observable 类来实现此模式的好的示例代码示例?
【问题讨论】:
标签: c# .net system.reactive observable