ใน C # เมื่อคุณแทนที่เมธอดจะอนุญาตให้ทำการแทนที่ async เมื่อไม่ได้ใช้วิธีดั้งเดิม ดูเหมือนว่ารูปแบบไม่ดี
ตัวอย่างที่นำฉันมาสู่สิ่งนี้คือสิ่งนี้ - ฉันถูกนำตัวเข้ามาเพื่อช่วยแก้ไขปัญหาการทดสอบโหลด มีผู้ใช้งานพร้อมกันประมาณ 500 คนกระบวนการเข้าสู่ระบบจะแยกย่อยในการวนรอบการเปลี่ยนเส้นทาง IIS กำลังบันทึกข้อยกเว้นด้วยข้อความ "โมดูลหรือตัวจัดการแบบอะซิงโครนัสเสร็จสมบูรณ์ในขณะที่การดำเนินการแบบอะซิงโครนัสยังคงค้างอยู่" การค้นหาบางอย่างทำให้ฉันคิดว่ามีใครบางคนกำลังดูถูกเหยียดหยามasync void
แต่การค้นหาอย่างรวดเร็วของฉันผ่านทางแหล่งข้อมูลไม่พบสิ่งใดเลย
น่าเศร้าที่ฉันกำลังค้นหา 'async \ svoid' (การค้นหา regex) เมื่อฉันควรมองหาบางสิ่งเพิ่มเติมเช่น 'async \ s [^ T]' (สมมติว่า Task ไม่ผ่านการรับรอง ... คุณเข้าใจแล้ว)
สิ่งที่ฉันพบภายหลังคือasync override void onActionExecuting(...
ตัวควบคุมพื้นฐาน เห็นได้ชัดว่าจะต้องมีปัญหาและมันก็เป็น แก้ไขปัญหาที่เกิดขึ้น (ทำให้ซิงโครนัสสักครู่) แก้ไขปัญหา
กลับไปที่คำถาม: ทำไมโอทำไมคุณสามารถทำเครื่องหมาย override เป็น async เมื่อรหัสการโทรไม่สามารถรอได้?
Task
ได้เท่านั้น