异步库方法调用是否应该使用await
?例如,假设我有一个数据服务库方法,它可以访问名为“repository”的Entity Framework 6数据上下文。据我所见,我有两种定义此方法的方式:
public static async Task<IEnumerable<Blogs>>
GetAllBlogsAsync(EfDataContext db)
{
return await db.Blogs
.OrderByDescending(b => b.Date)
.SelectAsync();
}
或者没有 async
/await
修饰符的情况下
public static Task<IEnumerable<Blogs>>
GetAllBlogsAsync(EfDataContext db)
{
return db.Blogs
.OrderByDescending(b => b.Date)
.SelectAsync();
}
在应用程序终点,即MVC控制器操作中,对于任何一种方法,调用方式都相同。public async Task<ActionResult> Blogs()
{
var blogs = await BlogService.GetAllBlogs(_blogRepository);
return View(blogs);
}
当然,这种情况可能会更加复杂,应用程序调用一系列异步方法。每个链中的方法都应该调用await
吗?还是只应该在调用链末尾只有一个await
语句,这会产生什么区别呢?
await
会做什么? - Aron