0

Observable.Count<TSource> Method実際にどのように機能するかを示す例はありますか? 私が思いついた例は、予想されるカウントではなく、オブザーバブルにラップされたカウントを返すようです。

たとえば、私はこれから1返されることを期待しています:

System.Diagnostics.Debug.WriteLine((Observable.Return<string>("Hello world!")).Count());

将来的に返される予定はあります1か (結局、非同期シーケンスなので)? それとも、いくつかの基本的なことが欠けていますか? これを書いている時点では、結果がプッシュされる限り、 は.Count()結果を返し、時間の経過とともに成長すると実際に想定しています。T本当に?はい。

4

2 に答える 2

5

Rx の集計演算子は、LINQ とは少し異なります。値をすぐに返すのではなく、将来の結果を返します(つまり、Observable が完了すると、最終的なカウントが何であるかを知ることができます)。

したがって、次のように書くと:

Observable.Return("foo").Count().Subscribe(x => Console.WriteLine(x));
>>> 1

結局、それは非同期シーケンスだからです

これは実際には正確ではありません。ここでは、誰かが を呼び出すとすぐに、すべてがすぐに実行されますSubscribe。上記のコードには非同期処理はなく、余分なスレッドもありません。すべてはサブスクライブで行われます。

于 2013-11-04T23:08:01.557 に答える