小编mqu*_*kel的帖子

MVC4任务<IEnumerable>不等待

我正在查看示例,只是试图理解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吗?我习惯在客户端做这种事情,所以我很感激这些方法的帮助......

c# asp.net-mvc

1
推荐指数
1
解决办法
969
查看次数

标签 统计

asp.net-mvc ×1

c# ×1