我正在查看示例,只是试图理解awaitMVC AsyncController中的关键字.我觉得以下应该工作,因为我只是试图异步返回一个列表.这只是理解async关键字的一个示例:
public async Task<ActionResult> Index()
{
var s = await SelectAsync();
return View(s);
}
private async Task<IEnumerable<Student>> SelectAsync()
{
var ctx = new Test.MVC4.Repository.StudentDataContext;
return await ctx.Students.ToList();
}
Run Code Online (Sandbox Code Playgroud)
我觉得那Task<IEnumerable<Student>>不是值得期待的.我的印象是Tasks是等待的.
更新:这样的事情怎么样(假设EF代码被抽象为.Select方法?
public async Task<ActionResult> Index()
{
var s = await SelectAsync();
return View(s);
}
private async Task<IEnumerable<Student>> SelectAsync()
{
return _repo.Select();
}
Run Code Online (Sandbox Code Playgroud)
或者我还需要在SelectAsync方法中使用Task.Run吗?我习惯在客户端做这种事情,所以我很感激这些方法的帮助......