【发布时间】:2018-04-11 10:29:09
【问题描述】:
我被分配到一个已经在运行的新项目。我注意到人们使用async 方法创建了所有存储库类,并且每次都使用await 在控制器中调用它们,因此它们本质上是作为同步代码工作的。
将来它们不可能被异步调用,并且服务器只有一个 SQL Server 实例正在运行。
它来自一种种子 API 项目,创建它的人已不在公司,现在没有人确切知道他们为什么是 async。但我认为在当前的项目场景中,将它们设为async 根本没有意义,它只是给系统增加了不必要的复杂性。
在这种情况下将它们设为async 是否有意义?
【问题讨论】:
-
我要说的一件事是,如果在任何阶段都可能需要异步,那么最好从一开始就以这种方式进行。我曾参与过一些需要异步处理的项目,而这些项目还没有进行异步处理,而且流动效果让我很头疼。
-
我不明白你的问题。当您使用 create 这个词时,我认为
new和 C# 不允许构造函数是异步的,这是有充分理由的。此外,无论 SQL 是否在同一个盒子上,Async在使用异步 sql 调用时很可能会提高性能。 -
@jmcilhinney 我同意你的观点,如果将来有可能发生异步,那也没关系。但这里不是这样。
-
等待
async方法与简单地调用同步方法不同,因为它仍然允许 UI 在执行耗时的工作时保持响应。不过,这仅与本地应用程序真正相关,与 Web 应用程序无关。我不声称自己是权威,但在您的特定情况下,我不知道使用async/await的优势。 -
我觉得这个问题可以帮助你更好地理解
async/await:stackoverflow.com/questions/32482275/…
标签: c# asp.net-core