首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将异步与MVC5配合使用有什么优势?

将异步与MVC5配合使用有什么优势?
EN

Stack Overflow用户
提问于 2013-09-30 14:13:51
回答 2查看 49.9K关注 0票数 120

它们之间的区别是什么:

代码语言:javascript
复制
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);
}

和:

代码语言:javascript
复制
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> 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代码现在有异步,但有什么不同呢?其中一个的性能是否比另一个好得多?其中一个比另一个更容易调试问题吗?我应该为我的应用程序更改其他控制器以添加异步吗?

EN

回答 2

Stack Overflow用户

发布于 2016-03-22 17:53:14

通常,单个HTTP请求将由单个线程处理,并从池中完全删除该线程,直到返回响应为止。使用TPL,您不受此约束的约束。任何传入的请求都会使用计算响应所需的每个计算单元开始一个延续,该响应能够在池中的任何线程上执行。使用此模型,您可以处理比标准ASP.Net多得多的并发请求。

是否会产生一些新任务,以及是否应该等待它。总是想着那70毫秒,这大约是。最大值。任何方法调用都应该花费的时间。如果它更长,那么你的UI很可能不会有很强的响应性。

票数 2
EN

Stack Overflow用户

发布于 2017-12-22 15:24:24

在启动时看到大量并发请求或负载突发(并发突然增加)的web应用程序中,将这些web服务调用设为异步将提高应用程序的响应性。处理异步请求所需的时间与处理同步请求的时间相同。例如,如果请求发出的web服务调用需要两秒钟才能完成,则无论是同步执行还是异步执行,该请求都需要两秒。但是,在异步调用期间,线程在等待第一个请求完成时不会被阻止响应其他请求。因此,当有许多并发请求调用长时间运行的操作时,异步请求会阻止请求排队和线程池增长。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19087513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档