Từ khóa async và await được dùng trong C# cho lập trình bất đồng bộ (asynchronous programming).
Một ứng dụng với GUI, kiểm tra nội dung hàng đợi và nếu có tác vụ chưa xử lý, nó lấy ra và xử lý trước. Mã thực thi đồng bộ và tác vụ chưa xử lý được hoàn thành trước. Ứng dụng sẽ hiện "stop responding" nếu xử lý mất nhiều thời gian hơn dự kiến.
Hãy xem điều được thảo luận ở trên:
private void OnRequestDownload(object sender, RoutedEventArgs e) {
var req = HttpWebRequest.Create(_requestedUri);
var res = req.GetResponse();
}
Để giải quyết vấn đề trên, sử dụng từ khóa async và await:
private async void OnRequestDownload(object sender, RoutedEventArgs e) {
var req = HttpWebRequest.Create(_requestedUri);
var res = await req.GetResponseAsync();
}