C# 8.0 中的非同步流是什麼?
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!
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP