Why the code below doesn't work?
var observable = Observable.Create<int>(o => new Action(() => { o.OnNext(0); o.OnCompleted(); })); foreach (var item in observable.ToEnumerable()) // <-- Here blocks { // Never get here } The below doesn't work neither:
Task.Run(() => { foreach (var item in observable.ToEnumerable()) // <-- Still blocks { // Never get here } }).Wait(); Interestingly, the Generate method works as expected:
var observable = Observable.Generate(0, i => i < 1, i => i + 1, i => i); foreach (var item in observable.ToEnumerable()) { // Is ok }