c# - 为什么 asyncController 无法获取数据

标签 c# asp.net-mvc-5 task

我是 AsyncController 的新手,请帮助我为什么我无法使用异步从数据库中获取数据:

 public async Task<ActionResult> Index()
 {
     Task<IEnumerable<Country>> objctry = Task.Factory.StartNew<IEnumerable<Country>>(objrepo.GetCountry);
      await Task.WhenAll(objctry);
      return View(objctry);
 }

如果我将上面的代码更改为:

 public ActionResult Index() { var x = objrepo.GetCountry();return View(x); }

它的工作。 请指导我到底哪里做错了

最佳答案

您正在使用 Task.WhenAll在这种情况下不正确。

使用Task.Run并重构操作如下

public async Task<ActionResult> Index() {
    IEnumerable<Country> objctry = await Task.Run(() => objrepo.GetCountry);
    return View(objctry);
}

关于c# - 为什么 asyncController 无法获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49808741/

相关文章:

c# - 为什么在 Edmx 做同样的工作时使用 EF 5.X DbContext Generator?

c# - 如何使用 ASP.NET MVC5 将 ErrorCode 转换为字符串?

c# - 我应该使用 CancellationTokenSource 还是 CancellationToken 来取消 .NET 中的任务

java - java中的多线程任务调度器

c# - 更改无线网络适配器无线模式属性

c# - 在 OnRegistered 方法中将标签添加到 NotificationHub

C# 表达式主体推断?

c# - ASP.NET 身份更改密码

jquery - MVC 5 Ajax BeginForm POST 404 未找到

python - 存储代码以供以后执行的最佳方式(python)