pub*_*tic 17 c# asp.net-mvc entity-framework async-await
关于如何将EF 6与MVC 5一起使用的最新EF教程似乎倾向于使用对数据库的asych调用,如:
Department department = await db.Departments.FindAsync(id);
Run Code Online (Sandbox Code Playgroud)
这是新标准/最佳做法吗?
我不确定ASP.NET MVC的这种开发风格有什么好处.
有人可以评论这种模式,这是MS推广的新标准吗?
usr*_*usr 38
为了决定是进行异步还是同步,请比较好处和成本:
异步:
SynchronizationContext
同步:
如果要调用高延迟服务,请选择与ASP.NET的异步.Web服务可能是高延迟.OLTP数据库几乎总是低延迟.
如果您的应用程序受益于非常高的并发性(100+),请选择async.大多数应用程序没有如此高的级别,或者它们的后端服务不会承受如此大的负载.没有必要使Web应用程序扩展,但后端过载.调用链中的所有系统都必须受益于高度并发性才能使异步变得有益.
典型的高延迟服务(异步的好例子):
SemaphoreSlim
,...)典型的低延迟服务(同步的好例子):
这些按典型案例分类.所有这些也可以属于相反的类别.
您可以在同一个应用中混合同步和异步.当它处于最佳位置时使用异步.
那么为什么Microsoft和Entity Framework团队会推广异步使用?这是答案的主观部分:它可能是微软的内部政策.他们可能会预测客户端应用程序中的EF使用情况(异步很棒).或者,他们没有意识到异步数据库调用几乎总是浪费开发人员的时间而没有任何好处.大多数人都没有意识到这一点,因为异步是这些日子的方式.
Ste*_*ary 13
在ASP.NET上,您应该使用异步API来处理与I/O相关的任何事情,包括数据库访问和Web服务调用.
使用async
允许ASP.NET最大限度地利用线程池,从而产生非平凡的可伸缩性优势.
归档时间: |
|
查看次数: |
7284 次 |
最近记录: |