1

次のコードが与えられます。

EventLoopScheduler scheduler = new EventLoopScheduler(ts => new Thread(ts));

BehaviorSubject<int> subject = new BehaviorSubject<int>(0);

subject
    .ObserveOn(scheduler)
    .CombineLatest(Observable.Interval(TimeSpan.FromSeconds(1), scheduler), (x, y) => x)                        
    .Subscribe(x => Debug.WriteLine(x));

subject.OnNext(1);

なぜ印刷するのですか?

0
1
0
1
0
1
...

それ以外の:

0
1
1
1
1
1
...
4

1 に答える 1

1

まず第一に、あなたの出力は本当に奇妙に見えます。私はそれらの両方を言うでしょう。出力は次のようになるはずです。

1
1
1
1
1

なし 0。これは、最初の間隔値が 1 秒で生成されるためです - 間違いなく呼び出した後subject.OnNext(1);

他の奇妙なこと- それはBehaviorSubject(Of T)BehaviourSubject<int>の英国版ですか? :) 独自の実装がある場合は、質問を拡張してください。BehaviourSubject

于 2012-06-13T08:27:47.380 に答える