การเขียนโปรแกรมแบบอะซิงโครนัสใน C# เป็นแนวทางที่มีประสิทธิภาพสำหรับกิจกรรมที่ถูกบล็อกหรือการเข้าถึงล่าช้า หากกิจกรรมถูกบล็อกในลักษณะนี้ในกระบวนการซิงโครนัส แอปพลิเคชันที่สมบูรณ์จะรอและใช้เวลานานขึ้น แอปพลิเคชันหยุดตอบสนอง ด้วยการใช้วิธีการแบบอะซิงโครนัส แอปพลิเคชันจะทำงานกับงานอื่นๆ ต่อไปด้วย
แอปพลิเคชันที่มี GUI ตรวจสอบเนื้อหาของคิว และหากมีงานที่ยังไม่ได้ดำเนินการ ให้นำออกและประมวลผลก่อน รหัสดำเนินการพร้อมกันและงานที่ยังไม่ได้ดำเนินการจะเสร็จสิ้นก่อน แอปพลิเคชันจะแสดงข้อความหยุดตอบสนองหากการประมวลผลใช้เวลานานกว่าที่คาดไว้
ให้เราดูสิ่งที่กล่าวถึงข้างต้น
private void OnRequestDownload(object sender, RoutedEventArgs e) {
var req = HttpWebRequest.Create(_requestedUri);
var res = req.GetResponse();
} ในการแก้ปัญหาข้างต้น ให้ใช้ async และรอคำสำคัญ
private async void OnRequestDownload(object sender, RoutedEventArgs e) {
var req= HttpWebRequest.Create(_requestedUri);
var res = await req.GetResponseAsync();
}