비동기는 동기와는 다르게 하나의 작업이 완료될 때까지 기다리지 않고 다른 작업을 실행할 수 있다.
동기 실행은 위에서 부터 아래로 순차적으로 실행되는 동기적인 코드이다.
비동기 실행은 코드의 흐름이 복잡하다.
using System.Threading.Tasks;
선언을 해줘야 한다.- 비동기 실행할 메서드 앞에
async
를 넣기- 비동기로 실행할 부분 앞에
await
넣기Task.Delay()
는Thread.Sheep()
의 비동기 버전으로 메인스레드를 차단하지 않는다.- Async 메서드의 반환타입은 일반적으로
Task
,Task<TResult>
만 가능하지만void
도 허용해준다.
- void 방식은 이벤트 핸들러의 경우를 제외하고는 쓰지 않는 것이 좋다.
await
키워드 같은 경우에는async
로 선언된 비동기 메서드 내에서만 키워드로 인식된다.- Async Await을 하면 비동기 코드보다 간편하고 이해하기 쉽게 할 수 있고 동기적 코드와 유사한 방식으로 작성할 수 있어 가독성 또한 좋고 Thread를 차단하지 않기 때문에 멈춤 현상 가능성을 줄일 수 있다.
참고하고 갑니다~