-
Task와 async, await 비교/관계C# 2022. 1. 24. 16:27반응형
https://www.sysnet.pe.kr/3/0/5488
비슷한 의문점이 있어 찾아보다 발견하여 참고하였습니다.
[Task와 async, await]
- 기존 비동기 지원 방식 자체가 Delegate의 BeginInvoke 를 이용해 스레드 풀을 이용하는 것만 지원하고 있었기 때문에 비동기 작업 이후의 처리에 제약이 많았다.
-> 이러한 제약을 극복한 것이 Task
-> async/await이 어차피 비동기 호출이 완료된 후, 그 완료 이벤트를 받았을 때 계속 코드를 실행해야 하는 작업을 스레드 풀의 스레드가 담당하게 되는데 자연스럽게 Task로 그 작업을 맡기게 된 것
-> async, await 보다 더욱 세밀하게 제어할 수 있도록 Task를 구현하여 제공
- 결국 async/await 역시 Task 의 기능을 사용하는 것이므로 결과적으로는 SynchronizationContext를 이용해 비동기 처리와 콜백 처리를 하게 된다.
- 둘 다 ThreadPool을 사용하는 것이므로 속도차이는 무시할 정도로 미미하거나 없다.
- 어떤 것을 사용할 것인지는 개발자 취향.300x250'C#' 카테고리의 다른 글
Invoke, BeginInvoke, 크로스 스레드 예외 (0) 2022.01.24 C# - CancellationToken (0) 2022.01.24 c# Error - NullReferenceException (0) 2022.01.24 C# - Managed DLL, Unmanaged DLL (0) 2022.01.24 C# - using문 (0) 2022.01.24