В чем преимущество использования async с MVC5?

В чем разница между:

public ActionResult Login(LoginViewModel model, string returnUrl)
{
    if (ModelState.IsValid)
    {
        IdentityResult result = IdentityManager.Authentication.CheckPasswordAndSignIn(AuthenticationManager, model.UserName, model.Password, model.RememberMe);
        if (result.Success)
        {
            return Redirect("~/home");
        }
        else
        {
            AddErrors(result);
        }
    }
    return View(model);
}

а также:

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task Login(LoginViewModel model, string returnUrl)
{
    if (ModelState.IsValid)
    {
        IdentityResult result = await IdentityManager.Authentication.CheckPasswordAndSignInAsync(AuthenticationManager, model.UserName, model.Password, model.RememberMe);
        if (result.Success)
        {
            return Redirect("~/home");
        }
        else
        {
            AddErrors(result);
        }
    }
    return View(model);
}

Я вижу, что код MVC теперь имеет асинхронный режим, но в чем разница. Один дает намного лучшую производительность, чем другой? Легче ли отлаживать проблемы с одним, чем с другим? Должен ли я внести изменения в другие контроллеры для моего приложения, чтобы добавить Async?

Ответы на вопрос(3)

Ваш ответ на вопрос