我正在为一个相当大而复杂的WCF应用程序转换我们的数据层,以便异步地与数据库通信。
这导致async
和await
在呼叫/消费代码中随处可见。
查看典型请求的堆栈跟踪,我已经可以看到System.Runtime.CompilerServices.TaskAwaiter
使用await
执行此操作的许多部分。而我刚刚开始这项任务!
我理解.net在遇到async
/ await
时会做什么,所以我的问题如下:与async
/ await
相关的额外开销是否值得当结果是从请求开始到结束的相当多的异步方法时?我理解异步调用数据库的好处但有限制吗?特别是当调用应用程序相当大且复杂(或者更合适的是大而长的调用堆栈)时。
感谢。