When to dispose CancellationTokenSource?
The class CancellationTokenSource is disposable. A quick look in Reflector proves usage of KernelEvent , a (very likely) unmanaged resource. Since CancellationTokenSource has no finalizer, if we do not dispose it, the GC won't do it. On the other hand, if you look at the samples listed on the MSDN article Cancellation in Managed Threads , only one code snippet disposes of the token. What is the proper way to dispose of it in code? You cannot wrap code starting your parallel task with using if you do not wait for it. And it makes sense to have cancellation only if you do not wait. Of course you