为什么EF 6教程使用异步调用?

为什么EF 6教程使用异步调用?

关于如何在MVC 5中使用EF 6的最新EF教程似乎倾向于使用对数据库的ASYCH调用,如下所示:

Department department = await db.Departments.FindAsync(id);

这是新的标准/最佳做法吗?

我不知道用ASP.NETMVC开发这种风格有什么好处。

有人能评论这个模式吗,这是微软正在推广的新标准吗?


陪伴而非守候
浏览 946回答 3
3回答

侃侃无极

理想情况下,任何涉及等待时间的事情都应该异步完成。数据库查询通常必须调用远程服务器,发送查询,然后等待服务器响应结果。这使得它成为异步的主要候选对象,因为整个“等待服务器响应”部分是应用程序中无法考虑的变量。在代码等待异步操作完成时,使用异步允许Web服务器重用当前线程以字段其他Web请求。当它完成时,一个线程将返回给您的应用程序以继续处理。如果运行同步,则在等待数据库或其他长时间运行的进程时,线程会死锁,并且Web服务器的池不可用。如果这样做足够,Web服务器可能会耗尽可用的线程,并且必须开始对进一步的请求进行排队。异步通过释放线程来缓解这一点,而线程只是在等待某件事情,从而增加了Web服务器可以处理的潜在负载。
打开App,查看更多内容
随时随地看视频慕课网APP