
Async ใน ASP.NET Core
async/await ใน controller, CancellationToken, streaming responses, timeout, async filter, IAsyncEnumerable
1ทำไมจึงควรใช้ async/await ใน controller action ของ ASP.NET Core?
ทำไมจึงควรใช้ async/await ใน controller action ของ ASP.NET Core?
คำตอบ
การใช้ async/await ใน controller จะปล่อย thread ของ thread pool ในระหว่างการทำงาน I/O (ฐานข้อมูล, API ภายนอก) ซึ่งช่วยเพิ่ม scalability ของเซิร์ฟเวอร์โดยให้ thread ประมวลผล request อื่นได้ในระหว่างรอ หากไม่มี async, thread จะถูกบล็อกและใช้ทรัพยากรโดยไม่จำเป็น ทำให้จำกัดจำนวน request ที่ทำงานพร้อมกัน
2จะเกิดอะไรขึ้นหาก controller action คืนค่า Task<IActionResult> โดยไม่ใช้ async/await?
จะเกิดอะไรขึ้นหาก controller action คืนค่า Task<IActionResult> โดยไม่ใช้ async/await?
คำตอบ
การคืนค่า Task<IActionResult> โดยไม่ใช้ async/await จะทำงานได้หากคุณคืน Task ที่มีอยู่โดยตรง (return dbContext.SaveChangesAsync();) อย่างไรก็ตาม หากไม่มีคีย์เวิร์ด async คุณจะไม่สามารถใช้ await ในตัวเมธอดได้ ส่วนใหญ่แล้วการใช้ async ช่วยให้สามารถ await การทำงานแบบ async หลายรายการและจัดการ error ด้วย try/catch ได้
3ความแตกต่างระหว่าง ToList() กับ ToListAsync() ใน controller action คืออะไร?
ความแตกต่างระหว่าง ToList() กับ ToListAsync() ใน controller action คืออะไร?
คำตอบ
ToList() เป็นแบบ synchronous และบล็อก thread ในระหว่างการ query ฐานข้อมูล ซึ่งจำกัด scalability ส่วน ToListAsync() เป็นแบบ asynchronous และปล่อย thread ในระหว่างการทำงาน I/O ทำให้เซิร์ฟเวอร์ประมวลผล request อื่นได้ ควรใช้ ToListAsync() ใน controller เสมอเพื่อเพิ่มจำนวน request ที่ทำงานพร้อมกันได้สูงสุด
CancellationToken มีบทบาทอย่างไรใน controller action?
จะรับ CancellationToken ใน controller action ของ ASP.NET Core ได้อย่างไร?
+17 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ .NET อื่นๆ
พื้นฐาน C#
LINQ & Delegates
พื้นฐานสำคัญของภาษา C#
พื้นฐาน ASP.NET Core
วงจรชีวิตของ request ใน ASP.NET Core
Configuration & Settings
วงจรชีวิตของแอปพลิเคชัน
Dependency Injection
Entity Framework Core
Minimal APIs
การพัฒนา Web API
Authentication & Authorization
HttpClient & Networking
การซีเรียลไลซ์ JSON
Entity Framework Core ขั้นสูง
ฟีเจอร์ขั้นสูงของ C#
Clean Architecture
Logging, Monitoring & Observability
Unit Testing และ xUnit
การทดสอบแบบบูรณาการ
Docker & Containerization
การจัดการแพ็กเกจ NuGet
Memory Management & GC
การเขียนโปรแกรมแบบรีแอกทีฟ
Async/await และรูปแบบ
.NET Design Patterns
การเพิ่มประสิทธิภาพการทำงาน
ความปลอดภัยและ Best Practices
SignalR และเรียลไทม์
สถาปัตยกรรม Microservices
เชี่ยวชาญ .NET สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี