Trung BìnhC# iconC#

Tại sao nên tránh blocking calls như `.Result` và `.Wait()`?

Các blocking call như .Result dừng thread hiện tại lại để chờ task hoàn thành.

  • Trong UI app (WPF, WinForms) hoặc classic ASP.NET (có SynchronizationContext), nếu continuation của task cần dùng đúng thread đó thì cả hai cùng chờ nhau — deadlock kinh điển.
  • Lưu ý: ASP.NET Core (Kestrel) KHÔNG cài SynchronizationContext nên deadlock này không xảy ra ở đó — nhưng vẫn nên tránh .Result vì block thread pool.
  • Luôn dùng await thay thế.

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

Mở danh sách C#