如何在Web请求上传输CancellationToken

时间:2017-12-07 19:40:58

标签: c# asynchronous asp.net-web-api stateless cancellation-token

我正在研究通过WebAPI取消异步请求,

最近我发现最新版本的WebApi(不是.NET-Core' s)支持取消令牌。作为测试,我已经编写了这段代码。

[HttpGet]
[Route("LongRequest")]
public async Task<string> VeryLongRequest(string Key, CancellationToken token)
{
    for (int i = 0; i < 5; ++i)
    {
        if (false == token.IsCancellationRequested)
        {
            Thread.Sleep(5000);
        }
        else
        {
            Trace.WriteLine("Cancelled");
        }
    }

    return "Complete";
}

此代码有效,当用户关闭窗口/刷新/或导航到新页面(不在SPA上)时,更新取消令牌。

假设HTTP请求是无状态的,取消映射如何回到请求?

如何从我的客户手动调用取消?

0 个答案:

没有答案