Asynchronous 我是否误用/过度使用了异步/等待模式?

Asynchronous 我是否误用/过度使用了异步/等待模式?,asynchronous,Asynchronous,我承认我对异步/等待模式的理解不是很深。我刚读了一些文章,觉得这个模式很好,所以我到处都用。我的服务层充满了这样的代码: public async Task DoSomeWork() { // some database operations... await ctx.SaveChangesAsync(); } 在我的异步控制器操作方法中: public async Task<ActionResult> SomeAction() { await service.DoSomeW

我承认我对异步/等待模式的理解不是很深。我刚读了一些文章,觉得这个模式很好,所以我到处都用。我的服务层充满了这样的代码:

public async Task DoSomeWork()
{
// some database operations...
await ctx.SaveChangesAsync();   
}
在我的异步控制器操作方法中:

public async Task<ActionResult> SomeAction()
{
await service.DoSomeWork();
return View();
}
公共异步任务SomeAction()
{
等待服务;
返回视图();
}
在我的大多数项目中,iis服务器和数据库服务器位于同一个intranet中,甚至在同一个物理服务器上。因此,我不认为我从使用异步中获得了任何好处,而是受到了它的缺点的影响,其中一个缺点是页面在开发阶段没有显示任何异常,我在调试过程中经历了上千次,进入等待代码行只是没有响应、没有异常、没有中断


那么,我是否滥用或过度使用了async/await模式呢?

async有两个好处:在UI应用程序上,async提供了响应能力;在服务器应用程序上,异步提供了可伸缩性

对于ASP.NET服务器,是否使用异步的问题通常归结为后端的可伸缩性。这是因为在大多数情况下,数据库服务器是瓶颈。如果您的后端是可伸缩的(例如NoSQL),那么在web服务器上使用异步通常是有意义的。但是,如果只有一个SQL server实例作为后端,那么异步web服务器通常没有意义