无论操作是否耗时,始终在我的动作中添加CancellationToken是否是一个好的做法?
我目前正在将它添加到每个动作中,但我不知道这是对还是错。
[ApiController]
[Route("api/[controller]")]
public class DummiesController : ControllerBase
{
private readonly AppDbContext _dbContext;
public DummyController(AppDbContext dbContext)
{
_dbContext = dbContext;
}
[HttpGet("{id}")]
public async Task<ActionResult<Dummy>> GetAsync(int id, CancellationToken ct) // <<----- should I always do this?
{
var dummy = await _dbContext.Dummies.AsNoTracking().SingleOrDefaultAsync(e=>e.Id == id, ct);
if (dummy == null) return NotFound();
return dummy;
}
}
还需要添加CancellationToken ct = default(CancellationToken)
吗?
CancellationToken
对象本身并不能自动取消任何操作,你需要自己手动取消。 - FCin