728x90
블록 넌블록
Block
호출된 함수가 할 일을 마칠 때까지 제어권을 가지고
일이 끝나면 호출한 함수에게 제어권을 넘겨준다.
Non-Block
호출된 함수가 일이 끝나지 않아도 제어권을 넘겨주고
호출한 함수가 다른 일을 진행할 수 있도록 한다.
동기 비동기
Synchronous
함수 A와 B가 순차적으로 실행하면 동기
Asynchronous
함수 A와 B가 동시에 실행하면 비동기
async, await이란?
async await은 비동기 작업을 동기처럼 실행해주는 키워드다.
await
동기로 실행하고 싶은 Task를 호출할 때 앞에 await을 붙인다.
async
동기로 실행하는 Task를 호출하는 함수 타입 앞에 async를 붙인다.
예시
public async Task CookBread()
{
Console.WriteLine("I cook Bread");
await Task.Delay(10000);
}
동기로 실행되는 함수 안에서 비동기로 다른 작업을 할 수 있다.
반응형
'개발공부 > C#' 카테고리의 다른 글
[Effective C#] 아이템 47 : 사용자 지정 예외 클래스를 완벽하게 작성하라 (0) | 2021.12.22 |
---|---|
[Effective C#] 아이템 46 : 리소스 정리를 위해 using과 try/finally를 활용하라 (0) | 2021.12.21 |
[Effective C#] 아이템 45 : 메서드가 실패했음을 알리기 위해서 예외를 이용하라 (0) | 2021.12.20 |
[Effective C#] 아이템 43: 쿼리 결과의 의미를 명확히 강제하고, Single()과 First()를 사용해라 (0) | 2021.12.18 |
[Effective C#] 아이템 42 : IEnumerable<T> 데이터 소스와 IQueryable<T> 데이터 소스를 구분하라 (0) | 2021.12.17 |