我正在写一个WebAPI微服务,并且想知道是否有利于使用async
。该服务通过实体框架调用SQL数据库。单线程应用程序的异步的好处
同步:
using(var db = new Entities())
{
var user = db.Users.FirstOrDefault();
user.IsActive = false;
db.SaveChanges();
}
异步:
using(var db = new Entities())
{
var user = await db.Users.FirstOrDefaultAsync();
user.IsActive = false;
await db.SaveChangesAsync();
}
不像async
我已经看到了一些用例,没有拉开awaitable子任务与促成的处理暂停来自await
(因此“单线程”,但可能不是字面上)。
我的问题是,从资源的角度来看,这与同步替代方案有什么不同?假设它在控制器中始终是异步的,服务是否会更好地扩展?
奖励要点:在其他异步应用程序(如开发人员忘记利用异步方法)中进行一些同步阻塞的含义是什么?
“asynchrounous”是什么意思? –
返回任务而不是结果。 “一路通过控制器”意味着一个任务不会被调用.Result或.Wait() –