Trung BìnhC# iconC#

`ConfigureAwait(false)` là gì và khi nào nên dùng?

ConfigureAwait(false) báo cho async runtime không cần resume trên synchronization context đã được capture.

  • Điều này quan trọng trong library code và services nơi không cần thread affinity.
  • Lý do chính trong code hiện đại: tránh context-switching overhead và là "good library citizen" — không bắt context của caller.
  • Lưu ý: trong classic ASP.NET (có SynchronizationContext) nó cũng ngăn deadlock khi .Result được dùng; nhưng trong ASP.NET Core thì không có SynchronizationContext nên deadlock prevention không áp dụng — lý do dùng chủ yếu là performance.
  • Luôn dùng trong non-UI async code của library.

Xem toàn bộ C# cùng filter theo level & chủ đề con.

Mở danh sách C#