异步控制器有不同的示例。其中一些在方法定义中使用 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);
...
目前尚不清楚,我们是否应该在控制器中使用 CancellationToken(以及为什么)。