Sequence · .Result trên context một thread

Vì sao .Result treo cứng WPF và ASP.NET Framework

Trình tự deadlock khi gọi .Result await bắt SynchronizationContext, .Result block chính thread đó, continuation được Post về context nhưng cần đúng thread đang bị block, nên hai bên chờ nhau mãi. 1 · GetCustomerAsync(id) 2 · AWAIT BẮT CONTEXT 3 · .Result BLOCK THREAD HTTP XONG 4 · POST CONTINUATION CONTINUATION NẰM CHỜ 5 · CẦN ĐÚNG THREAD NÀY CHỜ TASK HOÀN THÀNH UI / request thread WPF · ASP.NET Framework SynchronizationContext 1 thread tại một thời điểm Thread pool nơi HTTP call hoàn thành Thread chờ Task, Task chờ continuation, continuation chờ thread: không ai nhường. © tiennhm