gpt4 book ai didi

c# - 始终在 ASP.NET MVC Controller 中使用异步

转载 作者:太空狗 更新时间:2023-10-30 01:03:38 24 4
gpt4 key购买 nike

我最近继承了一个 ASP.NET MVC 项目。在该项目中,开发人员正在使用 async 无处不在。我正在尝试评估它是否是个好主意。具体来说,我目前正在审查 Controller 代码。

在 Controller 中,开发人员编写了如下内容:

public async Task<ActionResult> Index()
{
return View();
}

与传统版本相比,这个有什么优势吗:

public ActionResult Index()
{
return View();
}

如果在 Controller 代码中使用 await,我可以理解使用 async。很多时候,它没有被使用。这种方法有什么理由吗?

最佳答案

没有。在任何地方都使用 Async 并不是一个好主意。

关于缺少 await,当 Async 方法不包含 Await 运算符时,编译器会发出警告。没有 await 的 Async 方法将同步运行,这使得语义不正确。

对于您的具体示例,该操作简单且运行时间短,这就是为什么使用 Async/Await 不会带来任何好处,也不应该使用它,因此您完全可以使用:

public ActionResult Index()
{
return View();
}

Async/Await 应用于执行某种 IO(例如网络请求、数据库访问等)的 Controller 方法。如果 Controller 方法正在执行 CPU 绑定(bind)工作(例如数学计算),那么使用 Async/Await 实际上会使性能变差,除非您的测量证明我错了。

旧规则适用:测量两次,切割一次

关于c# - 始终在 ASP.NET MVC Controller 中使用异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27460579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com