Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

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!