카테고리 없음

비동기 프로그래밍에 대해 알아보자. #1 ( Await 과 async)

근본넘치는개발자 2024. 11. 12. 23:28

2024.11.10 - [분류 전체보기] - 유니티 - Coroutine에 대해 알아보자

 

지난 시간에는 코루틴에 대해 글을 작성했었습니다. 

여기에 이어서 오늘은 지난 시간 언급한 것 처럼

Await와 async에 대해 정리해 보고자 합니다.

 

Async/Await의 주요 특징

  • C# 5.0 이상 버전에서 지원
  • 비동기 코드를 동기 코드처럼 작성 가능
  • 메인 스레드 차단 없이 비동기 작업 수행

 

예시 코드 

public class AsyncAwaitExamples
{
    public async Task BasicExampleAsync()
    {
        Console.WriteLine("작업 시작");
        await Task.Delay(2000); // 2초 대기
        Console.WriteLine("2초 후 작업 완료");
    }
 }

 

정리 

비동기 메서드 선언시 async 키워드를 사용하고

비동기 작업 호출 시 await 키워드를 사용한다.

(await 키워드는 async 내에서만 예약어로 인식이 된다.)

 

async의 반환타입은 기본적으로 Task이지만

이벤트 핸들러에 한하여 void를 사용하기도 한다.

 

마무리 

오늘은  Await와 async에 대해 정리해 봤습니다.

 

BeginInvoke와 EndInvoke라는 것도 처음 들어봤는데

나중에 한번 자세히 다뤄보겠습니다.(잘 안쓰인다고는 하니 일단 킵)

 

일단 다음시간에는 Task와 UniTask, Awaitable에 대해서 공부해보고 정리해보겠습니다.


이럴 줄 알았으면 Task부터 공부할 걸 그랬네요.

공부하면 할수록 모르는 게 계속 나오네요;;

 

2024.11.14 - [분류 전체보기] - 비동기 프로그래밍에 대해 알아보자. #2 (Task)

 

비동기 프로그래밍에 대해 알아보자. #2 (Task)

2024.11.12 - [분류 전체보기] - 비동기 프로그래밍에 대해 알아보자. #1 ( Await 과 async)2024.11.13 - [분류 전체보기] - 스레드(Thread)와 스레드 풀(ThreadPool)에 대해 알아보자 지난 시간에 이어  오늘은 비

rootdev.tistory.com

 

참고한 자료 

 

https://docs.unity3d.com/kr/2023.2/Manual/AwaitSupport.html

 

Await 지원 - Unity 매뉴얼

Unity 2023.1에서는 C# async 및 await 키워드를 사용하여 간소화된 비동기 프로그래밍 모델을 지원합니다. Unity의 비동기 API는 대부분 다음을 포함하는 async/await 패턴을 지원합니다.

docs.unity3d.com

https://youtu.be/RJdBFFTuUCE?si=JzzzPPFpV0jiUvEZ