C#의 Task.WhenAll로 여러 작업 동시에 실행하기
이 레슨에서는 서로 독립된 비동기 작업 두 개를 동시에 실행하고, Task.WhenAll로 둘 다 끝날 때까지 기다립니다.
소개
서로 다른 두 API를 호출하는 것처럼 여러 비동기 작업이 서로 의존하지 않는다면, 하나가 끝나기를 기다렸다가 다음을 시작할 필요가 없습니다. Task.WhenAll은 작업들을 동시에 실행하고, 모두 끝났을 때만 완료됩니다.
Fetch(20)과 Fetch(22) 두 호출이 즉시 시작되므로, 기다리는 시간이 차례로가 아니라 동시에 흐릅니다. Task.WhenAll은 작업 순서대로 결과가 담긴 배열을 돌려주며, 합은 42입니다.
실행 가능한 C# 예제
C#
Program.cs
using System;
using System.Threading.Tasks;
class Program
{
static async Task<int> Fetch(int value) { await Task.Delay(20); return value; }
static async Task Main()
{
int[] results = await Task.WhenAll(Fetch(20), Fetch(22));
Console.WriteLine(results[0] + results[1]);
}
}
42디버거로 연습하기
중요한 대입이나 조건에 중단점을 두고 Debug를 눌러 다음 줄로 넘어가기 전에 지역 변수 값을 확인하세요.
챌린지로 연습하기
이 레슨에서 배운 내용으로 실제 문제를 풀어 보세요. 모든 챌린지는 브라우저에서 실행되며 즉시 테스트와 AI 리뷰를 받을 수 있습니다.
모든 챌린지