본문 바로가기

C#

C# async / await


1. async / await

C#은 비동기 프로그래밍을 보다 쉽게 지원하는 기능인 async / await를 지원한다.
async는 비동기로 실행될 메서드를 선언할때 사용하며, await는 비동기 작업이 완료될 때까지 실행을 임시 중단하는 역할을 한다. 반환형은 Task를 사용한다.
이를 사용하여 시간이 오래걸리는 작업에 비동기적 처리를 하여 프로그램의 응답성과 성능을 향상 시킬수 있다.

2. 작성법

비동기 작업을 할 메서드에 async 키워드를 사용한다.

해당 예제는 https://www.example.com 사이트로 요청을 보내고 응답이 올때까지 대기했다가 응답이 올때까지 기다렸다가 응답이 오면 작업을 완료하는 예제이다.
main 메서드를 async로 선언한 뒤 Task를 반환형으로 선언한다.
await PerformAsumctask()를 통해 응답이 올때까지 기다린다.
        static async Task PerformAsyncTask()
        {
            Console.WriteLine("비동기 작업 시작...");

            // HttpClient를 사용하여 비동기 HTTP 요청 수행
            using (HttpClient client = new HttpClient())
            {
                string response = await client.GetStringAsync("https://www.example.com");
                Console.WriteLine("서버 응답 받음: " + response);
            }
        
            Console.WriteLine("비동기 작업 종료.");
        }

 

string response 에 client.GetStringAsync를 이용해 example.com 으로 요청을 보낸다. await로 인해 응답을 받을때까지 대기 후 응답이 오면 이어서 진행하게 된다.
응답 내용을 출력 후 비동기 작업 종료를 출력, 다시 main 메서드로 돌아가 비동기 작업 완료를 출력한다.

 

'C#' 카테고리의 다른 글

C# Dynamic  (0) 2023.07.11
C# Partial Type  (0) 2023.07.11
C# 확장 메서드  (0) 2023.07.11
C# 무명 메서드 / 람다식 / 익명타입  (0) 2023.07.11
C# 인터페이스  (0) 2023.07.10