Я пытаюсь реализовать простой шаблон Observer, используя класс .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
выполнялась в потоке, отличном от потока пользовательского интерфейса, но вместо Observing
во всем пуле потоков, я хочу убедиться, что они работают в правильном порядкев том же потоке.
Как следует изменить вышеперечисленное?
Кроме того, есть несколько примечательных примеров кода, использующих класс Observable
для реализации этого шаблона