Я пытаюсь понять следующий пример, который объединяет и SelectMany
. Насколько мне известно, Window
создает поток IObservable
(IObservable<IObservable<T>>
), как только Observable
начинает отправлять товары. Этот поток сглаживается с SelectMany
, чтобы получить <IObservable<T>
.Интуитивное объяснение в Window и SelectMany
В этом video tutorial при использовании SelectMany
в простом IObservable
, создается новый поток (пусть говорят «нить»), где функция f
является applyied.
Вопросы:
- Не могли бы вы, пролить свет, о том, как пришли данные в подписку и то, что в соответствии с видео Учебник marble diagram?
- Что такое функция, которая применяется для выравнивания потока?
- Наконец, можно ли представить более сложный пример, в котором
SelectMany
применяет простую функцию, напримерRange
, и как результаты отображаются на мраморной диаграмме?
спасибо.
var source = Observable.Interval(TimeSpan.FromMilliseconds(100))// start a counter from zero and last 100 milliseconds
.Take(5) // take only the first 5 items
.Window(2)
.SelectMany(c => c);
source.Subscribe(
value => Console.WriteLine(value.ToString()),
error => Console.WriteLine(error.Message),
() => Console.WriteLine("Completed")
);
Console.WriteLine("Press any key to exit");
Console.ReadKey();
«что именно функция, которая применяется для выравнивания поток?" - Um, 'SelectMany'. Но столбы переполнения стека должны действительно иметь * один * конкретный вопрос в ... на данный момент этот пост является слишком широким и неясным относительно того, какую часть вы не понимаете. Вы понимаете 'SelectMany' в« регулярном »LINQ? Вы должны иметь возможность применить это знание здесь, и если вы этого не сделаете, я предлагаю, чтобы вы начали. –