当前位置:   article > 正文

在编写异步方法时,使用 ConfigureAwait(false) 避免使用者死锁_.configureawait(false)

.configureawait(false)

我在 使用 Task.Wait()?立刻死锁(deadlock) 一文中站在类库使用者的角度看 async/await 代码的死锁问题;而本文将站在类库设计者的角度来看死锁问题。

阅读本文,我们将知道如何编写类库代码,来尽可能避免类库使用者出现那篇博客中描述的死锁问题。


可能死锁的代码

现在,我们是类库设计者的身份,我们试图编写一个 RunAsync 方法用以异步执行某些操作。

private async Task RunAsync()
{
    // 某些异步操作。
}
  • 1
  • 2
  • 3
  • 4

类库的使用者可能多种多样,一个比较有素养的使用者会考虑这样使用类库:

await foo.RunAsync();
  • 1

放心,这样的类库使用者是不会出什么岔子的。

然而,这世间既然有让人省心的类库使用者,当然也存在非常让人不省心的类库使用者。当你的类库遍

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/104665
推荐阅读
相关标签
  

闽ICP备14008679号