You are viewing a potentially older version of this package. View all versions.
dotnet_lethal_company-Microsoft_Bcl_AsyncInterfaces-8.0.0 icon

Microsoft Bcl AsyncInterfaces

NuGet Microsoft.Bcl.AsyncInterfaces package re-bundled for convenient consumption and dependency management.

Date uploaded 8 months ago
Version 8.0.0
Download link dotnet_lethal_company-Microsoft_Bcl_AsyncInterfaces-8.0.0.zip
Downloads 357
Dependency string dotnet_lethal_company-Microsoft_Bcl_AsyncInterfaces-8.0.0

README

About

As of C# 8, the C# language has support for producing and consuming asynchronous iterators. The library types in support of those features are available in .NET Core 3.0 and newer as well as in .NET Standard 2.1. This library provides the necessary definitions of those types to support these language features on .NET Framework and on .NET Standard 2.0. This library is not necessary nor recommended when targeting versions of .NET that include the relevant support.

Key Features

  • Enables the use of C# async iterators on older .NET platforms

How to Use

using System;
using System.Collections.Generic;
using System.Threading.Tasks;

internal static class Program
{
    private static async Task Main()
    {
        Console.WriteLine("Starting...");
        await foreach (var value in GetValuesAsync())
        {
            Console.WriteLine(value);
        }
        Console.WriteLine("Finished!");

        static async IAsyncEnumerable<int> GetValuesAsync()
        {
            for (int i = 0; i < 10; i++)
            {
                await Task.Delay(TimeSpan.FromSeconds(1));
                yield return i;
            }
        }
    }
}

Main Types

The main types provided by this library are:

  • IAsyncEnumerable<T>
  • IAsyncEnumerator<T>
  • IAsyncDisposable<T>

Additional Documentation

Feedback & Contributing

Microsoft.Bcl.AsyncInterfaces is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.