ConfigureAwait(false)避免上下文延續


之前MVC利用MvcHtmlString封裝通用下拉菜單,菜單數據需要從webapi獲取,自然用到了 await Http Client.GetAsync(Url)方法,前端 @Html.SelectCategory調用的時候會發生死鎖。

默認情況下,一個asynchronous方法在被await調用后恢復運行時,會在原來的上下文運行,如果是UI上下文,並且有大量的asynchronous方法在UI上下文中回復,就會引起性能問題。死鎖也是這么造成的。

 

解決方法 :加一個.ConfigureAwait(false),為了避免在上下文鍾恢復運行,可讓await調用ConfigureAwait方法的返回值,參數continueOnCapturedContext設為false


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM