订阅顺序==单线程主题的观察顺序?

时间:2013-08-20 13:24:08

标签: c# system.reactive

当我订阅一个主题的多个观察者时, 是否保证观察员按照他们订阅的顺序被召唤?

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

据我所知,在多线程场景中,事情会变得相当棘手,所以我想特别要求单线程案例。主题是在同一个帖子上订阅和观察的。

1 个答案:

答案 0 :(得分:3)

  

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

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