如果我每次都必须等待而不是使用 Sync .ToList(),那么使用 .ToListAsync 的相应多数据库查询是否有任何性能优势?
Is there any performance benefit in respective multiple db query with .ToListAsync if i have to await each time rather than using Sync .ToList()?
所以我首先以这种方式分别从每个实体回购数据库中检索数据:
_dbset.ShareCompany.ToList();
_dbset.SourceOfIncome.ToList();
同样有更多的数据库调用。然后我将我的数据库调用更改为:
await _dbset.ShareCompany.ToListAsync();
await _dbset.SourceOfIncome.ToListAsync();
但我认为此异步调用没有任何性能优势,因为它必须等待数据被检索,这实际上又使其成为同步调用。如果我必须等待数据才能检索我的下一个数据。
所以,如果有人能告诉我什么时候使用异步调用是一个好习惯,如果我在第二个代码中使用异步会不会有任何性能优势,以及如何?
使用异步将释放您的工作线程以接受新请求。这使您的应用程序更具响应性。
如果您不使用异步,工作线程将被阻塞,并且 IIS 将为新请求启动一个新线程(这最终可能会影响应用程序的性能,因为您只能启动这么多线程)。
这实际上是 已经回答的问题的重复。
所以我首先以这种方式分别从每个实体回购数据库中检索数据:
_dbset.ShareCompany.ToList();
_dbset.SourceOfIncome.ToList();
同样有更多的数据库调用。然后我将我的数据库调用更改为:
await _dbset.ShareCompany.ToListAsync();
await _dbset.SourceOfIncome.ToListAsync();
但我认为此异步调用没有任何性能优势,因为它必须等待数据被检索,这实际上又使其成为同步调用。如果我必须等待数据才能检索我的下一个数据。
所以,如果有人能告诉我什么时候使用异步调用是一个好习惯,如果我在第二个代码中使用异步会不会有任何性能优势,以及如何?
使用异步将释放您的工作线程以接受新请求。这使您的应用程序更具响应性。 如果您不使用异步,工作线程将被阻塞,并且 IIS 将为新请求启动一个新线程(这最终可能会影响应用程序的性能,因为您只能启动这么多线程)。
这实际上是