使用CancellationTokenSource 对线程指定超时时间 若超时就取消掉当前任务
C#如何指定异步线程超时时间 并在超时后取消掉当前任务
应用场景:某个任务线程需要消耗一定时间 但超过一定时间后要终止抛弃掉 避免堵塞其他作业
CancellationTokenSource TaskCancellationToken = new CancellationTokenSource(); //创建一个任务线程 异步处理 var t = Task.Factory.StartNew(() => { //你要执行的任务 System.Threading.Thread.Sleep(30*1000); //模拟超时 }); int Timeout=20*1000;//20秒超时时间 //判断是否是超时结束 if (!t.Wait(Timeout, EchoCancellationToken.Token)) { //线程已经超时 取消线程 TaskCancellationToken.Cancel(); } else { //运行的时间内作业正常结束 }