C# 8.0 中的异步流是什么?
csharpserver side programmingprogramming更新于 2025/9/8 15:22:17
C# 8.0 引入了异步流,它模拟了流式数据源。数据流通常异步检索或生成元素。
生成序列的代码现在可以使用 yield return 在使用 async 修饰符声明的方法中返回元素。
我们可以使用 await foreach 循环来使用异步流。
以下语法
static IEnumerable<string> Message(){
yield return "Hello!";
yield return "Hello!";
}
Can be replaced by IAsyncEnumerable
static async IAsyncEnumerable<string> MessageAsync(){
await Task.Delay(2000);
yield return "Hello!";
await Task.Delay(2000);
yield return "Hello!";
}
示例
class Program{
public static async Task Main(){
await foreach (var item in MessageAsync()){
System.Console.WriteLine(item);
}
Console.ReadLine();
}
static async IAsyncEnumerable<string> MessageAsync(){
await Task.Delay(2000);
yield return "Hello!";
await Task.Delay(2000);
yield return "Hello!";
}
}
输出
Hello! Hello!

