我正在研究通过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请求是无状态的,取消映射如何回到请求?
如何从我的客户手动调用取消?