假设我有两种场景:
1)WebApi 控制器
[System.Web.Http.HttpPost]
[System.Web.Http.AllowAnonymous]
[Route("api/registerMobile")]
public async Task<HttpResponseMessage> RegisterMobile(RegisterModel model)
{
var registerResponse = await AuthUtilities.RegisterUserAsync(model, _userService, User);
if (registerResponse.Success) {
var response = await _userService.GetAuthViewModelAsync(model.Username, User);
return Request.CreateResponse(HttpStatusCode.OK, new ApiResponseDto() { Success = true, Data = response });
}
else {
return Request.CreateResponse(HttpStatusCode.OK, registerResponse);
}
}
2) MVC 控制器
[Route("public")]
public async Task<ActionResult> Public()
{
if (User.Identity.IsAuthenticated)
{
var model = await _userService.GetAuthViewModelAsync(User.Identity.Name);
return View("~/Views/Home/Index.cshtml", model);
}
else
{
var model = await _userService.GetAuthViewModelAsync(null);
return View("~/Views/Home/Index.cshtml", model);
}
}
我一直在研究何时应该使用 ConfigureAwait
,看起来我应该在所有非直接与UI相关的异步调用中使用 ConfigureAwait(false)
。但是我不知道这意味着什么...这些 await
调用是否都应该使用 .ConfigureAwait(false)
?
我正在寻找关于何时应该使用它的明确指南。
这个问题不同于 Best practice to call ConfigureAwait for all server-side code - 我正在寻找有关WebApi和MVC上下文中此方法用例的简单答案,而不是C#的一般性解释。
ConfigureAwait(false)
没有意义)。 - Alexei Levenkov