Esempio n. 1
0
        private static CancellationTokenRegistration?RegisterCancellationToken(CancellationToken cancellationToken, out CancellableOperationBase cancellableOperation)
        {
            if (cancellationToken.CanBeCanceled)
            {
                cancellableOperation = new CancellableOperationBase();
                return(cancellationToken.Register(cancellableOperation.Cancel));
            }

            cancellableOperation = null;
            return(null);
        }
Esempio n. 2
0
        private static void AssignCancellableOperation(CancellableOperationBase cancellableOperation, ICancellableAsyncResult asyncResult, CancellationToken cancellationToken)
        {
            if (cancellableOperation != null)
            {
                cancellableOperation.CancelDelegate = asyncResult.Cancel;

                if (cancellationToken.IsCancellationRequested)
                {
                    cancellableOperation.Cancel();
                }
            }
        }