如果我们今天启动一个.NET Core 3.0项目,该项目将使用数据库连接(例如,ASP.NET Core Web API),那么在与数据库对话时,是否还有非异步操作的位置?
或者换句话说:在直接查询数据库时,我们应该始终(默认情况下)在directly方法中使用异步/等待吗?我在说,用ToListAsync,FirstOrDefaultAsync?
在与数据库交谈时,我很难看到不使用异步操作的优点。
发布于 2020-01-02 00:58:29
异步的目的是允许线程在等待较慢的服务/设备响应时执行其他工作。
那么,您的线程是否需要执行其他工作?
发布于 2019-12-02 20:42:32
如果您希望通过有限数量的线程进行快速访问,那么查询数据库的速度就更快,而不是异步。但是它会很快消耗线程,所以它只应该在需要额外的性能时使用,并且当您知道这个方法只会被一两个线程使用时。
就像后台工作人员或类似的一样,如果从web api方法中使用none异步方法,那么当许多客户端组合和使用该web api方法时,线程池上的线程将耗尽。
https://softwareengineering.stackexchange.com/questions/401955
复制相似问题