当我订阅一个主题的多个观察者时, 是否保证观察员按照他们订阅的顺序被召唤?
Linqpad中的一个简单测试似乎暗示是:
var observable = Observable.Return("foo");
var subject = new Subject<string>();
subject.Subscribe(_=>"Observer 1".Dump());
subject.Subscribe(_=>"Observer 2".Dump());
subject.Subscribe(_=>"Observer 3".Dump());
observable.Subscribe(subject);
// Observer 1
// Observer 2
// Observer 3
据我所知,在多线程场景中,事情会变得相当棘手,所以我想特别要求单线程案例。主题是在同一个帖子上订阅和观察的。
答案 0 :(得分:3)
当我订阅一个主题的多个观察者时,是否保证观察者按照他们订阅的顺序被调用?
不,这是一个恰好是真实的实现细节。