Пример #1
0
 protected virtual void PerformAtomicOperation(IAtomicOperation operation, CancellationToken cancellationToken)
 {
     if (operation != null)
     {
         try {
             IOperation successor = operation.Operator.Execute((IExecutionContext)operation, cancellationToken);
             if (successor != null)
             {
                 OperatorTrace.RegisterParenthood(operation, successor);
                 ExecutionStack.Add(successor);
             }
             CurrentOperation = null;
         }
         catch (Exception ex) {
             if (ex is OperationCanceledException)
             {
                 throw ex;
             }
             else
             {
                 throw new OperatorExecutionException(operation.Operator, ex);
             }
         }
     }
 }
Пример #2
0
 public void Prepare(IOperation initialOperation)
 {
     base.Prepare();
       ExecutionStack.Clear();
       if (initialOperation != null)
     ExecutionStack.Add(initialOperation);
       CurrentOperation = null;
       OperatorTrace.Reset();
       OnPrepared();
 }