【问题标题】:Understanding async and await了解异步和等待
【发布时间】:2014-01-09 23:56:40
【问题描述】:

我正在尝试了解 MVC5 的详细信息,但遇到了令我困惑的事情。在带有个人身份验证的 MVC5 项目默认附带的 accountController 中,异步登录和注册方法中有这行代码

var result = await UserManager.CreateAsync(user, model.Password);

我在这里读到http://msdn.microsoft.com/en-us/library/hh191443.aspx 这是一种正常的做法,但我不明白为什么你会使用异步方法并在同一行中等待。在这里只使用采用相同参数的 .Create 方法不是更有意义吗?

【问题讨论】:

标签: c# async-await asp.net-mvc-5


【解决方案1】:

SomeMethod()await SomeMethodAsync() 的区别在于后者在方法执行 IO 时不会阻塞线程。因此,应用程序变得更具可扩展性,因为它可以使用较少数量的线程来处理相同数量的请求。

如果您不关心可扩展性,那么您将选择这两个选项中的哪一个并不重要。但最好还是使用异步版本,以使您的应用程序适应未来发展,以便在可扩展性成为问题时您的应用程序表现良好。

【讨论】:

  • 这仅在存在同步上下文时有效,对吧?
  • @PauloMorgado async-await 也可以在没有同步上下文的情况下工作。在这种情况下,继续在线程池上恢复。
猜你喜欢
  • 2016-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-09
  • 1970-01-01
  • 2019-06-20
  • 2018-05-23
相关资源
最近更新 更多