Wraps a ChannelReader<T>
in an IObservable<T>
MIT
using System.Reactive.Linq;
using System.Threading.Channels;
var channel = Channel.CreateBounded<int>(1);
var reader = channel.Reader.ToObservable();
using (reader
.Do(x => Console.WriteLine($"Received {x}"))
.Subscribe())
{
for (var i = 0; i != 1000; ++i)
{
Console.WriteLine($"Writing {i}");
await channel.Writer.WriteAsync(i);
Console.WriteLine($"Written {i}");
}
channel.Writer.Complete();
Console.WriteLine("Press key to end");
Console.ReadLine();
}
Console.WriteLine("Finished");