如何在C#中使用 CancellationToken 处理异步任务
定时取消任务创建 CancellationTokenSource 的时候,可以传入时间, 通过它我们可以在等待一段时间后,自动取消任务。我们也可以调用 cts.CancelAfter, 它会在1s后取消任务。cts.CancelAfter;CancellationToken 注册回调我们可以调用 Register()方法,注册Token取消的回调,参数需要传入 Action 委托。Register() 注册回调后,返回一个 CancellationTokenRegistration 对象,同样的,你可以在回调函数执行前,移除注册回调,就像这样:在 HttpClient 中使用同样,你可以在 HttpClient 中使用传入 CancellationToken ,超时后,它会抛出一个 TaskCanceledException 的异常:在 WebAPI中使用我创建了一个 WebAPI 项目,其中的控制器代码如下,等待了5s,然后进行输出信息。启动项目后,我们在浏览器页面上访问接口,在第一次访问接口等待响应时,我刷新一次了页面,现在程序的输出信息如下:说明前台页面刷新后,后台并没有做取消操作,执行了两次!
下载地址
用户评论