为什么asyncController无法获取数据

时间:2018-04-13 03:12:21

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

我是const auth = firebase.auth(); //create new account const auth_var = auth.createUserWithEmailAndPassword(mail, pass); auth_var.catch(e=> console.log(e.message)); auth_var.catch(e=> console.log(e.code)); firebase.auth().onAuthStateChanged(function(user) { if (user) { // User is signed in. addUserData(fname, lname, phone); console.log(user); window.location.href = ../index.html; } else { // No user is signed in. console.log('not logged in'); } }); 的新用户,请帮助我为什么我无法使用async从db获取数据:

AsyncController

如果我将上述代码更改为:

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

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

1 个答案:

答案 0 :(得分:5)

在这种情况下,您使用的是Task.WhenAll

使用Task.Run并按以下步骤重构操作

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