例子:
CancellationTokenSource cts ; void MainWindow_Loaded(object sender, RoutedEventArgs e) { Task.Run(() => { try { Thread.Sleep(50000);//鸡肋的地方是如果这个地方需要很就才执行玩的话。。。 if (cts.Token.IsCancellationRequested) { throw new OperationCanceledException(); } } catch(OperationCanceledException ex) { MessageBox.Show("Cancled"); } }); } private void Button_Click(object sender, RoutedEventArgs e) { cts = new CancellationTokenSource(); cts.Cancel(); }
我感觉这个是个鸡肋,有点脱了裤子放屁的感觉。自己设置一个全局标准退出线程是一样的效果。主要是这个做不到立即退出正在执行的线程的效果。CancellationTokenSource.Cancel() 不能对工作线程产生影响,只是设置一个标志。。。。。。所以很鸡肋,不知道我理解得对不对。
C# CancellationTokenSource.Cancel 取消线程很鸡肋?
原文:https://www.cnblogs.com/wgscd/p/11887673.html