Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

Async Streams ใน C # 8.0 คืออะไร


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!