var httpContext = Cfg.HttpContextAccessor.HttpContext;
await Task.Delay(5000, httpContext.RequestAborted);
//当 httpContext.RequestAborted 监听到取消时,下面的Task.Run 方法就不会执行(httpContext.RequestAborted的状态变更只有
//在 Task.Run先前变更,任务里的方法才不会执行)
try
{
// 创建一个 Task.Run 任务。
await Task.Run(async () =>
{
await Task.Delay(5000);
// 取消 CancellationTokenSource。
KK(Thread.CurrentThread.ManagedThreadId);
// 执行一些操作。
}, httpContext.RequestAborted);
}
catch (Exception e)
{
}
//针对自定义取消可以根据注册回调 / 或者 httpContext.RequestAborted.IsCancellationRequested 属性
//进行自定义控制操作
httpContext.RequestAborted.Register(() =>
{
Console.WriteLine($"用户取消了操作:【{httpContext.TraceIdentifier}】,接口:[{httpContext.Request.Path}]");
//dd.Abort();
});