我最近问了一个问题并给出了两个答案:
The sync version:
var phrasesCount = db.Phrases.Count();
The async version (assuming this is EF):
var phrasesCount = await db.Phrases.CountAsync();
有人可以向我解释一下有什么区别以及我为什么要使用Async?
答案 0 :(得分:7)
运行应用程序的工作进程具有可用于处理http请求的有限数量的线程。目标是保持这些线程空闲,以便它们可用于处理传入的请求。异步版本不会阻止调用线程。这允许该线程返回处理那些传入的http请求。与此同时,异步方法已被触发,当它完成时,执行将从await
操作处停止的位置开始。如果您正在运行您的应用程序并使用您的示例测试两者之间的差异,您将不会发现性能之间存在太大差异。当您的应用程序传入的请求数量多于可用于处理它们的线程时,真正的价值就来了。