Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나의 지식 보관소

async한정자와 await 연산자로 만드는 비동기 코드 본문

프로그래밍 언어/C#

async한정자와 await 연산자로 만드는 비동기 코드

야식은진리다 2020. 5. 6. 03:41

async 한정자는 메서드, 이벤트 처리기, 태스크, 람다식 등을 수식함으로써 C# 컴파일러가 이들을 호출하는 코드를 만날 대 호출 결과를 기다리지 않고 바로 다음 코드로 이동하도록 실행 코드를 생성하게 한다. 단 async로 한정하는 메서드는 반환 형식이 Task나 Task<TResult>또는 void이여야만 한다.

 

void 메서드는 async 수식 하나만으로 완전한 비동기 코드가 된다. 하지만 Task나 Task<TResult>형식의 메서드는 async로 한정한것만으로는 동기코드와 다름 없이 동작한다. C#컴파일러는 Task나 Task<TResult>형식의 메서드를 async로 한정한 경우 await연산자가 해당 메서드 내부의 어디에 위치하는지 찾아서, 그곳에서 호출자에게 제어를 돌려주도록 한다.

 

또한 await 키워드는 awaitable 클래스 객체가 완료되는것을 기다리는 역할도한다.

'프로그래밍 언어 > C#' 카테고리의 다른 글

ADO.NET  (0) 2020.05.15
Task와 Task<TResult>그리고 Parallel  (0) 2020.05.06
익명 메서드와 람다식  (0) 2020.05.06
이벤트 event  (0) 2020.05.05
대리자  (0) 2020.05.05