Task的控制通过CancellationTokenSource.Token取消Task,但是取消后,该Task却无法再次启动!
var cts = new CancellationTokenSource();
触发cts .cancel()方法后无法复位
在cancel了以后,任务状态显示为RanToCompletion,这是因为从TPL的视角看,这个任务虽然取消了,但是它正常完成了工作并且返回了-1。
如何复位CancellationTokenSource.Token,只能通过new CancellationTokenSource()解决!
取消Task也可以通过外部触发异常来解决,OperationCanceledException,手动触发抛出异常!
通过
try
{
}
catch (OperationCanceledException)
{
Console.WriteLine($“任务被取消”);
}
达到取消任务终止任务的效果。
C# CancellationTokenSource.Token 取消Task后,却不能再次运行Task怎么办?
最新推荐文章于 2024-05-23 11:56:33 发布