การเขียนโปรแกรมแบบอะซิงโครนัสใน 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(); }