Async Streams

The new feature Async Streams in C# has removed the scalar result limitation and allows the async method to returns multiple results.

This change makes the async pattern more flexible so that you can retrieve data in lazy asynchronous sequence from a database or you can download data from an asynchronous sequence that returns the data in chunks when they become available.  

Here is an example

await foreach (var issue in runPagedQueryAsync(client, PagedIssueQuery, "docs"))

This makes full use of the service you are calling with the speed and response it was designed for.

Here is a fully working example that calls the GitHub API