我最近继承了一个ASP.NET MVC项目。在该项目中,开发人员正在使用async
到处。我正在尝试评估这是否是一个好主意。具体来说,我现在正在审查控制器代码。
在控制器中,开发人员编写了如下内容:
public async Task<ActionResult> Index()
{
return View();
}
与传统版本相比,它有什么优势:
public ActionResult Index()
{
return View();
}
我可以理解使用async
if await
在控制器代码中使用。很多时候,它并没有被使用。这种方法有什么理由吗?
不,到处使用异步并不是一个好主意。
关于缺少的等待,编译器会在以下情况时发出警告:Async
方法不包含Await
操作员。没有await的异步方法将同步运行,这使得语义不正确。
对于您的具体示例,该操作简单且运行时间短,这就是为什么使用 Async/Await 不会带来任何好处,并且不应该使用它,因此您完全可以使用:
public ActionResult Index()
{
return View();
}
Async/Await 应用于执行某种 IO 的控制器方法(例如网络请求、数据库访问等)。如果控制器方法正在执行 CPU 密集型工作(例如数学计算),那么使用 Async/Await 实际上会使性能变得更糟,除非您的测量结果证明我是错的。
旧规则适用:测量两次,切割一次.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)