One of the features from C# 8 that I'm really excited about is Asynchronous Streams. Essentially, it enables developers to both create and consume a constant stream of data in an asynchronous way.
This feature enables some interesting possibilities for .NET developers particularly in the realm of IoT, Big Data processing, and machine learning.
If you're interested reading some more about this feature, my colleague Anthony Chu has an interesting article here on DEV that I'd recommend taking a look at.
What's the big deal with IAsyncEnumerable<T> in .NET Core 3.0?
Anthony Chu for .NET ・ Jul 31 '19
If you're the type of person that learns better by doing, take a look at this tutorial that will guide through the various language constructs involved in creating and consuming an asynchronous stream.
Tutorial
Generate and consume async streams using C# 8.0 and .NET Core 3.0
One of the interesting things about the asynchronous streams feature it that it leverages familiar language constructs for working with enumerables and enumerators in C#. One thing that's missing out of the box, was the ability for developers to apply their knowledge of LINQ to process these data streams.
Well, it seems that the open source community has taken on the challenge and is working on System.Linq.Async. This NuGet package extends the IAsyncEnumerable interface to add many common LINQ operators and more.
In this episode, Bart De Smet comes on to talk about the System.Linq.Async nuget package that adds some common Linq query operators to IAsyncEnumerable.
If you liked this video and would like to see some more of our .NET content, please subscribe to our .NET Developers YouTube Channel.