【发布时间】:2016-02-27 19:16:31
【问题描述】:
我在我的 Aspnet 5 (Aspnet Core) WebAPI 控制器中有一个动作,在被请求时可能需要很长时间,即使用户取消加载它也会运行到最后。 aspnet 中的请求或 conroller/httpContext 中的任何事件是否有任何取消令牌变体,可以帮助我在用户已经不需要其结果时停止操作?
如果使用cancellationToken,它永远不会改变它的状态:
[HttpGet]
public async Task<string> Get(CancellationToken cancellationToken)
{
await Task.Run(() =>
{
while (!cancellationToken.IsCancellationRequested) ;
return;
});
return "hi";
}
,同样回调传递给令牌的 Register 方法也从未被调用过。
【问题讨论】:
-
似乎无法从客户端取消令牌
-
@KhanhTO,我认为服务器必须在 tcp 连接中止时更改令牌的状态,而且我当然不希望客户端传递任何令牌。
标签: c# asp.net-web-api asp.net-web-api2