我正在寫一個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() –