0

当我为一个主题订阅多个观察者时,是否可以保证观察者按照订阅的顺序被调用?

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

我知道,在多线程场景中,事情会变得相当棘手,所以我想特别询问单线程案例。该主题在同一线程上被订阅和观察。

4

1 回答 1

3

当我为一个主题订阅多个观察者时,是否可以保证观察者按照订阅的顺序被调用?

不,这是一个实现细节,目前恰好是真的。

于 2013-08-20T13:34:56.393 回答