gpt4 book ai didi

c# - 为什么此代码使用异步方法?

转载 作者:行者123 更新时间:2023-11-30 19:35:51 25 4
gpt4 key购买 nike

我正在读这个article当我遇到这段代码时在 Microsoft Identity 上:

// POST: /Account/Register
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
var result = await _userManager.CreateAsync(user, model.Password);
if (result.Succeeded) {
//.. REDUCTED .. //
}
}

我想知道为什么这段代码使用 CreateAsync 并等待它,而不是使用同步方法?
现在,这会阻塞直到 CreateAsync 返回,那么为什么不使用同步方法呢?使用异步方法并等待它的区别、优点或原因是什么?
谢谢

最佳答案

asyncawait 的全部要点是能够说“我在这里无法取得任何有用的进展,所以也许我正在使用的线程可能是在别处找到了一些有用的工作。”

的确,这两个版本(您所展示的以及潜在的同步版本)都“阻塞”了,但是其中一个(async 版本)在没有绑定(bind)一个线程无所事事。当 awaitable 完成其工作时,将找到合适的线程(在此上下文中,任何线程池线程都是合适的)以恢复处理请求的工作。

关于c# - 为什么此代码使用异步方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51247389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com