【发布时间】:2021-09-26 07:11:48
【问题描述】:
var categories1 = _context.Categories.ToList();
var categories2 = _context.Categories.ToListAsync().Result;
var categories3 = await _context.Categories.ToListAsync();
var categories4Task = _context.Categories.ToListAsync();
// do some other work
var categories4 = await categories4Task;
以上四个语句中,第一个语句正常,其他三个语句使用异步编程。
据我所知,如果我们使用异步任务,然后像在 categories4Task 变量中所做的那样在异步任务之后做一些其他工作,这很有用,因为它可以并行工作,并且可以节省总执行时间。
但如果categories2 我们使用Result 属性在同一行中获取结果,并且在categories3 中我们使用async 和await 在同一行中。这对我们在同一行中使用async 和await 有什么好处?这是否等于 categories1 查询?
谁能解释一下?
【问题讨论】:
-
How is this beneficial for us to use async and await in same line?告诉我们您对 async 和 await 的了解程度,以便我们以您可以理解的水平给出答案。 -
上面四个语句,第一个语句正常,其他三个语句使用异步编程。:第二个语句如何异步?您了解使用
.Result的含义吗? -
@TheodorZoulias 他们指的是方法名称中的
Async。 -
categories1是同步调用获取的,categories3是异步调用获取的,因为你使用的是
await,所以包含这个语句的方法也将是一个async方法。您需要阅读的主要内容是async/await对方法的作用,因为从表面上看,这两个语句看起来都非常相似,但它们对方法的影响却截然不同包含这些语句被编译。
标签: c# asp.net-mvc async-await asp.net-core-mvc