개발공부/C#

동기 비동기, 블럭 넌블럭

개발자 찐빵이 2022. 1. 10. 21:06
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);
}

동기로 실행되는 함수 안에서 비동기로 다른 작업을 할 수 있다.

반응형