赞
踩
我在 使用 Task.Wait()?立刻死锁(deadlock) 一文中站在类库使用者的角度看 async
/await
代码的死锁问题;而本文将站在类库设计者的角度来看死锁问题。
阅读本文,我们将知道如何编写类库代码,来尽可能避免类库使用者出现那篇博客中描述的死锁问题。
现在,我们是类库设计者的身份,我们试图编写一个 RunAsync
方法用以异步执行某些操作。
private async Task RunAsync()
{
// 某些异步操作。
}
类库的使用者可能多种多样,一个比较有素养的使用者会考虑这样使用类库:
await foo.RunAsync();
放心,这样的类库使用者是不会出什么岔子的。
然而,这世间既然有让人省心的类库使用者,当然也存在非常让人不省心的类库使用者。当你的类库遍
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。