异步 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/

10-13 06:57