gpt4 book ai didi

c# - MVC4 任务 不可等待

转载 作者:太空宇宙 更新时间:2023-11-03 18:34:36 25 4
gpt4 key购买 nike

我正在查看示例,只是想了解 await MVC 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();
}

我明白了 Task<IEnumerable<Student>>不可等待。我的印象是 Task可以等待。

更新:像这样的事情怎么样(假设 EF 代码已抽象为 .Select 方法?

    public async Task<ActionResult> Index()
{
var s = await SelectAsync();
return View(s);
}

private async Task<IEnumerable<Student>> SelectAsync()
{
return _repo.Select();
}

或者我还需要在 SelectAsync 方法中使用 Task.Run 吗?我习惯于在客户端做这种事情,所以我很感谢这里使用这些方法提供的帮助...

最佳答案

您正在 ctx.Students.ToList() 上调用 await。此方法 (ToList()) 不返回 Task,因此不可等待。

关于c# - MVC4 任务 <IEnumerable> 不可等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17149038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com