取消计算限制的操作
为了取消一个操作,首先必须创建一个System.Threading.CancellationTokenSource对象。这个对象包含了和管理取消有关的所有状态。构造好一个CancellationTokenSource之后,可同从它的Token属性获得一个或者多个CancellationToken实例,并传给相应的操作,使得那些操作可以取消。在一个计算限制操作的循环中,可以定时调用CancellationToken的IsCancellationRequested属性,了解循环是否应该提前终止,进而终止计算限制的操作。
Demo:
class Program { static void Main() { CancellationTokenSource cts=new CancellationTokenSource(); ThreadPool.QueueUserWorkItem(state => Count(cts.Token, 1000)); Console.WriteLine("Please <Enter> to cancel the operation."); Console.ReadLine(); cts.Cancel(); } static void Count(CancellationToken token,Int32 countTo) { for(Int32 count=0;count<countTo;count++) { if (token.IsCancellationRequested) { Console.WriteLine("Count is cancelled."); break; } Console.WriteLine(count); Thread.Sleep(200); } Console.WriteLine("Count is done."); } }