【发布时间】:2021-09-11 14:23:34
【问题描述】:
我有一个这样的用户控制器:
public class UserController : ControllerBase
{
private readonly IUserService _userService;
public UserController(IUserService userService)
{
_userService = userService;
}
public async Task<User> Get(int id, CancellationToken cancellationToken)
{
return await _userService.GetUserById(id, cancellationToken);
}
}
和用户服务:
public class UserService : IUserService
{
public async Task<User> GetUserById(int id, CancellationToken cancellationToken)
{
return await _dbContext.Users.Where(a => a.Id == id).FirstOrDefaultAsync(cancellationToken);
}
}
在UserService 中,我有一个async 方法,通过Id 返回用户。
我的问题是,我们需要在controller 中使用async/await 关键字还是在UserService 中使用async/await 就足够了?
public class UserController : ControllerBase
{
private readonly IUserService _userService;
public UserController(IUserService userService)
{
_userService = userService;
}
public Task<User> Get(int id, CancellationToken cancellationToken)
{
return _userService.GetUserById(id, cancellationToken);
}
}
【问题讨论】:
-
确认:顶部的
UserController.Get版本与底部的版本之间存在问题吗?即我们可以省略await吗? -
@MarcGravell 我更新了我的问题
标签: c# asynchronous async-await threadpool