异步 Controller 有不同的示例。其中一些在方法定义中使用CancellationToken:
public async Task<ActionResult> ShowItem(int id, CancellationToken cancellationToken)
{
await Database.GetItem(id, cancellationToken);
...
但是其他示例,甚至是VS2013的默认ASP.NET项目,都根本不使用CancellationToken,并且没有它就可以工作:
public async Task<ActionResult> ShowItem(int id)
{
await Database.GetItem(id);
...
目前尚不清楚,是否应该在 Controller 中使用CancellationToken(以及为什么)。
最佳答案
您应该使用它。现在,它仅适用于if you have an AsyncTimeout
,但将来的MVC/WebAPI版本可能会将 token 解释为“超时或客户端已断开连接”。
关于c# - 我们应该将CancellationToken与MVC/Web API Controller 一起使用吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19010856/