private static CancellationTokenRegistration?RegisterCancellationToken(CancellationToken cancellationToken, out CancellableOperationBase cancellableOperation) { if (cancellationToken.CanBeCanceled) { cancellableOperation = new CancellableOperationBase(); return(cancellationToken.Register(cancellableOperation.Cancel)); } cancellableOperation = null; return(null); }
private static void AssignCancellableOperation(CancellableOperationBase cancellableOperation, ICancellableAsyncResult asyncResult, CancellationToken cancellationToken) { if (cancellableOperation != null) { cancellableOperation.CancelDelegate = asyncResult.Cancel; if (cancellationToken.IsCancellationRequested) { cancellableOperation.Cancel(); } } }