private OperationsQueue Add <T, U>(OperationSendReceive <T, U> operation, bool runInParallel)
        {
            DelegateOperationSendReceive <T, U> delegateOperation = new DelegateOperationSendReceive <T, U>(operation, runInParallel);

            _operations.Add(delegateOperation);
            return(this);
        }
        public static OperationsQueue Do <T, U>(T args, OperationSendReceive <T, U> operation)
        {
            Result <T> result = new Result <T>();

            result.Data = args;
            OperationsQueue queue = new OperationsQueue(result);

            return(queue.Add(operation, false));
        }
 public OperationsQueue Then <T, U>(OperationSendReceive <T, U> operation)
 {
     return(Add <T, U>(operation, false));
 }