Computer >> Máy Tính >  >> Lập trình >> C#

Luồng Async trong C # 8.0 là gì?

C # 8.0 giới thiệu các luồng không đồng bộ, mô hình hóa một nguồn dữ liệu trực tuyến. Dòng dữ liệu thường truy xuất hoặc tạo các phần tử một cách không đồng bộ.

Mã tạo ra trình tự hiện có thể sử dụng lợi nhuận trả về để trả về các phần tử trong amethod đã được khai báo với công cụ sửa đổi không đồng bộ.

Chúng tôi có thể sử dụng một luồng không đồng bộ bằng cách sử dụng một vòng lặp foreach đang chờ đợi.

Cú pháp bên dưới này

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!";
}

Ví dụ

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!";
   }
}

Đầu ra

Hello!
Hello!