C # 8.0 แนะนำสตรีมแบบอะซิงโครนัสซึ่งจำลองแหล่งข้อมูลสตรีมมิง Datastreams มักจะดึงหรือสร้างองค์ประกอบแบบอะซิงโครนัส
ตอนนี้โค้ดที่สร้างลำดับสามารถใช้การส่งคืนผลตอบแทนเพื่อส่งคืนองค์ประกอบในวิธีที่ประกาศด้วยตัวแก้ไขแบบอะซิงโครนัสได้
เราสามารถกิน async stream โดยใช้ await foreach loop
ไวยากรณ์ด้านล่างนี้
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!