지연 시간이 발생하는 작업 시 프로그램의 응답성을 유지하기 위한 C#의 async/await 비동기 프로그래밍 기초를 정리했다.
비동기 처리 메커니즘
비동기 방식은 대기 중인 스레드 자원을 효율적으로 운용하게 한다.
class Program
{
static async Task Main()
{
Console.WriteLine("데이터 수신 시작");
// await를 통한 작업 완료 대기 및 자원 효율화
string result = await DownloadDataAsync();
Console.WriteLine($"수신 완료: {result.Length}자");
}
static async Task<string> DownloadDataAsync()
{
using HttpClient client = new HttpClient();
return await client.GetStringAsync("https://www.microsoft.com");
}
}
핵심 키워드 분석
- Task: 비동기 작업의 상태와 결과를 관리하는 객체이다.
- async: 메서드의 비동기 실행을 명시하며
await사용을 가능하게 한다. - await: 비동기 작업 종료 시까지 대기하되, 스레드 제어권을 양보하여 타 작업을 수행하게 한다.
시스템 효율성 향상
비동기 프로그래밍은 자원 관리 전략이다.
동기 코드와 유사한 구조를 유지하면서 시스템 효율을 극대화할 수 있다.
이를 통해 사용자 경험을 개선한 애플리케이션 구축이 가능하는 것 같다.