如果我们开始 .NET Core 3.0 project today,它将使用数据库连接(例如 ASP.NET Core Web API ),在与数据库对话时,是否仍有非异步操作的位置?

或者换句话说:在直接查询数据库时,我们应该(默认情况下)在数据存储库方法中始终使用async/await吗?我在说,用 ToListAsync , FirstOrDefaultAsync ?

在与数据库对话时不使用异步操作,我很难看到任何优势。

最佳回复

如果希望通过有限数量的线程进行快速访问,则查询数据库none async的速度会更快。但是它会很快吃掉线程,所以只有在需要额外的性能时才应该使用它,并且当您知道该方法只会被一两个线程使用时才应该使用它。

与后台工作程序或类似程序一样,如果从web api方法使用none async方法,则当许多客户端连接并使用该web api方法时,线程池中的线程将用完。