0

サブジェクトに複数のオブザーバーをサブスクライブする場合、オブザーバーがサブスクライブされた順序で呼び出されるという保証はありますか?

Linqpad での簡単なテストは、YES を暗示しているようです。

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