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

ผู้เขียน: Lewis Jackson
วันที่สร้าง: 8 พฤษภาคม 2021
วันที่อัปเดต: 25 มิถุนายน 2024
Anonim
Model Method Calls with UML Sequence Diagram
วิดีโอ: Model Method Calls with UML Sequence Diagram

เนื้อหา

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

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

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

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

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


ข้อมูลเบื้องต้นเกี่ยวกับ Microsoft Azure และ Microsoft Cloud | ในคู่มือนี้คุณจะได้เรียนรู้ว่าการประมวลผลแบบคลาวด์คืออะไรและ Microsoft Azure สามารถช่วยคุณในการโยกย้ายและดำเนินธุรกิจจากคลาวด์อย่างไร

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

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

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

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

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

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

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


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