C# 8.0 为我们带来了异步流,可以使用 async foreach
,不过使用此语法需要 IAsyncEnumerable
/ IAsyncEnumerator
类型。本文介绍如何在旧版本的 .NET Framework 和旧版本的 .NET Core 中获得此类型。
异步流所需版本
异步流需要 .NET Core 3.0 及以上版本才能直接支持。而如果是 .NET Framework,则是任何版本都不直接支持。
如果需要在早期版本使用异步流,需要安装 Microsoft.Bcl.AsyncInterfaces 这个 NuGet 包。这就像在早期版本中使用 ValueTuple
需要安装 System.ValueTuple 一样。
安装 Microsoft.Bcl.AsyncInterfaces
需要先在你的项目中安装 NuGet 包:
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="1.1.0" />