บ้าน พัฒนาการ การเรียกใช้วิธีอะซิงโครนัสคืออะไร - คำจำกัดความจาก techopedia

การเรียกใช้วิธีอะซิงโครนัสคืออะไร - คำจำกัดความจาก techopedia

สารบัญ:

Anonim

คำจำกัดความ - การเรียกใช้เมธอดแบบอะซิงโครนัสหมายถึงอะไร

การเรียกใช้เมธอดแบบอะซิงโครนัสเป็นวิธีที่ใช้ในการเขียนโปรแกรม. NET ที่กลับไปยังผู้เรียกทันทีก่อนที่การประมวลผลจะเสร็จสิ้นและไม่มีการบล็อกเธรดการโทร


เมื่อแอปพลิเคชันเรียกใช้วิธีการแบบอะซิงโครนัสมันจะสามารถดำเนินการพร้อมกับการเรียกใช้วิธีการแบบอะซิงโครนัสที่ทำงานของมันในเวลาเดียวกัน วิธีการแบบอะซิงโครนัสทำงานในเธรดแยกต่างหากจากเธรดแอปพลิเคชันหลัก ผลลัพธ์การประมวลผลจะถูกดึงผ่านสายอื่นในเธรดอื่น


วิธีการแบบอะซิงโครนัสช่วยปรับการดำเนินการของทรัพยากรให้เหมาะสมในแอปพลิเคชันที่ปรับขนาดได้ สิ่งเหล่านี้ถูกใช้เพื่อดำเนินงานที่ต้องใช้เวลามากเช่นการเปิดไฟล์ขนาดใหญ่การเชื่อมต่อกับคอมพิวเตอร์ระยะไกลการสืบค้นฐานข้อมูลการเรียกใช้บริการทางเว็บและเว็บฟอร์ม ASP.NET


การเรียกเมธอดแบบอะซิงโครนัสอาจเรียกว่าการเรียกใช้เมธอดแบบอะซิงโครนัส (AMI)

Techopedia อธิบายการเรียกใช้วิธีอะซิงโครนัส

วิธีการแบบอะซิงโครนัสแตกต่างจากวิธีการแบบซิงโครนัสในลักษณะที่ส่งคืนจากการโทร ในขณะที่การเรียกใช้เมธอดแบบอะซิงโครนัสกลับมาทันทีทำให้การเรียกโปรแกรมดำเนินการอื่น ๆ การเรียกใช้เมธอดแบบซิงโครนัสรอให้วิธีการดำเนินการให้เสร็จสิ้นก่อนดำเนินการต่อด้วยโปรแกรมโฟลว์


กรอบงาน. NET มีโครงสร้างพื้นฐานแบบอะซิงโครนัสในตัวเพื่อให้วิธีการใด ๆ สามารถเรียกใช้แบบอะซิงโครนัสได้โดยไม่ต้องเปลี่ยนรหัส


กรอบงาน. NET ให้สองรูปแบบการออกแบบเพื่อใช้วิธีการแบบอะซิงโครนัสซึ่งเป็นแบบที่ใช้ตัวแทนแบบอะซิงโครนัส (วัตถุ IASyncResult) และเหตุการณ์ รูปแบบของผู้ได้รับมอบหมายแบบอะซิงโครนัสมีความซับซ้อนมากขึ้นและให้ความยืดหยุ่นซึ่งทำให้เหมาะกับรูปแบบการเขียนโปรแกรมที่ซับซ้อนหลายรูปแบบ โมเดลตามเหตุการณ์นั้นง่ายและควรใช้ในกรณีส่วนใหญ่


ในรูปแบบผู้รับมอบสิทธิ์แบบอะซิงโครนัสวัตถุผู้รับมอบสิทธิ์ใช้สองวิธี: BeginInvoke และ EndInvoke BeginInvoke มีรายการของพารามิเตอร์ซึ่งคล้ายกับฟังก์ชันที่ถูกรวมไว้พร้อมกับพารามิเตอร์ทางเลือกเพิ่มเติมสองรายการ มันส่งคืนวัตถุ IAsyncResult EndInvoke ส่งกลับสองพารามิเตอร์ (ประเภท out และ ref) พร้อมกับวัตถุ IAsyncResult BeginInvoke ใช้สำหรับการเริ่มต้นการโทรแบบอะซิงโครนัสในขณะที่ EndInvoke จะใช้ในการดึงผลลัพธ์ของการโทรแบบอะซิงโครนัส


รูปแบบอะซิงโครนัสที่ยึดตามเหตุการณ์ใช้คลาสที่มีวิธีการอย่างน้อยหนึ่งวิธีชื่อ MethodNameAsync ซึ่งมีเวอร์ชันซิงโครนัสที่สอดคล้องกันซึ่งดำเนินการบนเธรดปัจจุบัน รูปแบบที่ยึดตามเหตุการณ์อาจมีเมธอด MethodNameCompleted และ MethodNameAsyncCancel รูปแบบนี้ทำให้คลาสสามารถสื่อสารกับการดำเนินการแบบอะซิงโครนัสที่ค้างอยู่โดยใช้โมเดลเหตุการณ์ของผู้รับมอบสิทธิ์


ต่อไปนี้เป็นเคล็ดลับที่เกี่ยวข้องกับวิธีการแบบอะซิงโครนัส:

  • สำหรับการเกิดพร้อมกันสูงต้องหลีกเลี่ยงวิธีการแบบอะซิงโครนัส
  • ต้องมีความระมัดระวังในขณะที่ผ่านการอ้างอิงวัตถุที่ใช้ร่วมกัน
  • EndXXX (เรียกว่าในตอนท้ายของการดำเนินการแบบอะซิงโครนัส) จะต้องถูกเรียกให้สร้างใหม่ข้อยกเว้นและหลีกเลี่ยงความล้มเหลว
  • โดยการจับและบันทึกออบเจ็กต์ข้อยกเว้นทั้งหมดในวิธีอะซิงโครนัสมันสามารถถูกโยนใหม่ได้ในระหว่างการโทร EndXXX
  • การควบคุมในส่วนต่อประสานผู้ใช้ที่เริ่มต้นการทำงานแบบอะซิงโครนัสที่ต้องใช้เวลานานจะต้องปิดการใช้งานหากจำเป็นสำหรับจุดประสงค์นั้นเท่านั้น
  • วิธีการแบบอะซิงโครนัสจะต้องดำเนินการด้วยความเข้าใจในมัลติเธรดและที่ซึ่งพวกเขาพิสูจน์แล้วว่ามีประสิทธิภาพมากกว่าการใช้วิธีการแบบซิงโครนัส
การเรียกใช้วิธีอะซิงโครนัสคืออะไร - คำจำกัดความจาก techopedia