C#의 비동기 프로그래밍은 차단되거나 액세스가 지연되는 활동에 대한 효율적인 접근 방식입니다. 동기식 프로세스에서 이와 같이 활동이 차단되면 전체 애플리케이션이 대기하고 더 많은 시간이 걸립니다. 응용 프로그램이 응답하지 않습니다. 비동기식 접근 방식을 사용하여 애플리케이션은 다른 작업도 계속합니다.
GUI가 있는 응용 프로그램은 대기열의 내용을 확인하고 처리되지 않은 작업이 있으면 먼저 꺼내어 처리합니다. 코드는 동기적으로 실행되고 처리되지 않은 작업이 먼저 완료됩니다. 처리 시간이 예상보다 오래 걸리는 경우 애플리케이션에 응답 중지 메시지가 표시됩니다.
위에서 논의한 내용을 살펴보겠습니다.
private void OnRequestDownload(object sender, RoutedEventArgs e) { var req = HttpWebRequest.Create(_requestedUri); var res = req.GetResponse(); }
위의 문제를 해결하려면 async 및 await 키워드를 사용하세요.
private async void OnRequestDownload(object sender, RoutedEventArgs e) { var req= HttpWebRequest.Create(_requestedUri); var res = await req.GetResponseAsync(); }