用过.NET线程池的人都知道,一旦把要执行的代码交给线程池去执行后,我们基本上就失去了代码在运行中的控制能力。比如,我们想在某个时刻取消这段代码的执行,就得另想一个办法。随着.NET4.0到来,这个问题得到了解决。.NET4.0引入了一种新的设计模式---合作取消模式(Cooperative Cancellation)。
.NET4.0的System.Threading命名空间下新增了两个成员,一个是CancellationTokenSource类,一个是CancellationToken结构。CancellationTokenSource类的主要成员如下:
public sealed class CancellationTokenSource : IDisposable {
public CancellationTokenSource();
public void Dispose();
public Boolean IsCancellationRequested { get; }
public CancellationToken Token { get; }//CancellationToken结构
public void Cancel();
public void Cancel(Boolean throwOnFirstException);
}
public CancellationTokenSource();
public void Dispose();
public Boolean IsCancellationRequested { get; }
public CancellationToken Token { get; }//CancellationToken结构
public void Cancel();
public void Cancel(Boolean throwOnFirstException);
}