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!