[C#] Async Await(비동기)

JanMatny·2024년 10월 22일
0

C#

목록 보기
4/15

동기와 비동기

  • 동기(synchronous) : 각 작업이 순차적으로 일어나는 방식을 말한다.
  • 비동기(Asynchronous) : 프로그램이 병렬적으로 실행되도록 하여 작업을 효율적으로 처리할 수 있게 해준다. 주로 I/O 작업 (파일 읽기 / 쓰기, 네트워크 통신)에 사용한다.

비동기는 동기와는 다르게 하나의 작업이 완료될 때까지 기다리지 않고 다른 작업을 실행할 수 있다.

< 동기 실행 예제코드 >

동기 실행은 위에서 부터 아래로 순차적으로 실행되는 동기적인 코드이다.

< 비동기 실행 예제코드 >

비동기 실행은 코드의 흐름이 복잡하다.

< Async Await를 이용하여 만든 코드 예제 코드 >


Async Await 사용 방법

  • using System.Threading.Tasks; 선언을 해줘야 한다.
  • 비동기 실행할 메서드 앞에 async를 넣기
  • 비동기로 실행할 부분 앞에 await 넣기
  • Task.Delay()Thread.Sheep()의 비동기 버전으로 메인스레드를 차단하지 않는다.
  • Async 메서드의 반환타입은 일반적으로 Task, Task<TResult>만 가능하지만 void도 허용해준다.
    • void 방식은 이벤트 핸들러의 경우를 제외하고는 쓰지 않는 것이 좋다.
  • await 키워드 같은 경우에는 async로 선언된 비동기 메서드 내에서만 키워드로 인식된다.
  • Async Await을 하면 비동기 코드보다 간편하고 이해하기 쉽게 할 수 있고 동기적 코드와 유사한 방식으로 작성할 수 있어 가독성 또한 좋고 Thread를 차단하지 않기 때문에 멈춤 현상 가능성을 줄일 수 있다.
profile
코딩 공부용 벨로그

1개의 댓글

comment-user-thumbnail
2024년 10월 24일

참고하고 갑니다~

답글 달기