当前位置: 首页>>代码示例>>C#>>正文


C# IOperation.Execute方法代码示例

本文整理汇总了C#中IOperation.Execute方法的典型用法代码示例。如果您正苦于以下问题:C# IOperation.Execute方法的具体用法?C# IOperation.Execute怎么用?C# IOperation.Execute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IOperation的用法示例。


在下文中一共展示了IOperation.Execute方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: FaceSearchController

        public FaceSearchController(
            IFrameStream source,
            IOperation<Frame> frameProcessor,
            IConvertor<Frame, Portrait> convertor,
            IOperation<Portrait> portraitProcessor)
        {
            _source = source;
            _frameProcessor = frameProcessor;
            _convertor = convertor;
            _portraitProcessor = portraitProcessor;

            _worker.DoWork = delegate
            {
                var frames = frameProcessor.Execute(null).ToList();
                var portraits = _convertor.Execute(frames).ToList();
                var portraitsAfterProcess = _portraitProcessor.Execute(portraits).ToList();

                foreach (var portrait in portraitsAfterProcess)
                {
                    portrait.Dispose();
                }
            };

            _worker.OnExceptionRetry = () => _source.Connect();
        }
开发者ID:dalinhuang,项目名称:appcollection,代码行数:25,代码来源:FaceSearchController.cs

示例2: OperateWithFailover

 /// <summary>
 /// Performs the operation and retries in in case the class is configured for
 /// retries, and there are enough hosts to try and the error was 
 /// </summary>
 /// <param name="op"></param>
 void OperateWithFailover(IOperation op)
 {
     int retries = Math.Min((int)FailoverPolicy.RetryCount + 1, knownHosts.Count);
     try
     {
         while (retries > 0)
         {
             --retries;
             // log.debug("Performing operation on {}; retries: {}", client.getUrl(), retries);
             try
             {
                 op.Execute(cassandra);
                 // hmmm don't count success, there are too many...
                 // monitor.incCounter(op.successCounter);
                 //   log.debug("Operation succeeded on {}", client.getUrl());
             }
             catch (Apache.Cassandra.TimedOutException)
             {
                 //   log.warn("Got a TimedOutException from {}. Num of retries: {}", client.getUrl(), retries);
                 if (retries == 0)
                     throw;
                 else
                 {
                     SkipToNextHost();
                     monitor.IncrementCounter(ClientCounter.RECOVERABLE_TIMED_OUT_EXCEPTIONS);
                 }
             }
             catch (Apache.Cassandra.UnavailableException)
             {
                 //  log.warn("Got a UnavailableException from {}. Num of retries: {}", client.getUrl(),
                 //      retries);
                 if (retries == 0)
                     throw;
                 else
                 {
                     SkipToNextHost();
                     monitor.IncrementCounter(ClientCounter.RECOVERABLE_UNAVAILABLE_EXCEPTIONS);
                 }
             }
             catch (TTransportException)
             {
                 //   log.warn("Got a TTransportException from {}. Num of retries: {}", client.getUrl(),
                 //       retries);
                 if (retries == 0)
                     throw;
                 else
                 {
                     SkipToNextHost();
                     monitor.IncrementCounter(ClientCounter.RECOVERABLE_TRANSPORT_EXCEPTIONS);
                 }
             }
         }
     }
     catch (Apache.Cassandra.InvalidRequestException ex)
     {
         monitor.IncrementCounter(op.FailCounter);
         throw new InvalidRequestException(ex.__isset.why ? ex.Why : ex.Message, ex);
     }
     catch (Apache.Cassandra.UnavailableException ex)
     {
         monitor.IncrementCounter(op.FailCounter);
         throw new UnavailableException(ex.Message, ex);
     }
     /*catch (TException e) {
     monitor.incCounter(op.failCounter);
     throw e;
     } */
     catch (Apache.Cassandra.TimedOutException ex)
     {
         monitor.IncrementCounter(op.FailCounter);
         throw new TimedOutException(ex.Message, ex);
     }
     catch (PoolExhaustedException ex)
     {
         //log.warn("Pool is exhausted", e);
         monitor.IncrementCounter(op.FailCounter);
         monitor.IncrementCounter(ClientCounter.POOL_EXHAUSTED);
         throw new UnavailableException(ex.Message, ex);
     }
     /*catch (IllegalStateException e) {
     //log.error("Client Pool is already closed, cannot obtain new clients.", e);
     monitor.incCounter(op.failCounter);
     throw new UnavailableException();
     } */
     catch (Exception ex)
     {
         //log.error("Cannot retry failover, got an Exception", e);
         monitor.IncrementCounter(op.FailCounter);
         throw new UnavailableException(ex.Message, ex);
     }
 }
开发者ID:ehornbostel,项目名称:hectorsharp,代码行数:96,代码来源:Keyspace.cs

示例3: Run

        /// <summary>
        /// Запустить одну операцию
        /// </summary>
        /// <param name="operation">Операция</param>
        /// <exception cref="System.ArgumentNullException" />
        public OperationObject Run(IOperation operation)
        {
            if (operation == null)
            {
                throw new ArgumentNullException("operation");
            }

            // Инициализация
            var tokenSource = new CancellationTokenSource();
            var operationObj = new OperationObject { OperationId = GetNewIndex() };
            var interop = new OperationInterop(operationObj, tokenSource.Token);

            // Chain :: Выполнение операции
            var task = new Task(() =>
            {
                operationObj.Status = OperationStatus.Running;
                operation.Execute(interop);
            },
            tokenSource.Token);

            // Chain :: Обработка законченной операции
            var chainEnd = task.ContinueWith(et =>
            {
                operationObj.Exception = et.Exception;
                operationObj.Status = et.Status.ToOperationStatus();
                operationObj.Progress = 100;
                operation.Dispose();

                if (!IsBeingWatched(operationObj))
                {
                    Notifier.Notify("Операция #" + operationObj.OperationId, "Операция завершена", null);
                }
            });

            // Обработка и запуск цепочки выполнения
            AddOperation(operationObj);
            AddUnit(operationObj.OperationId, new OperationUnit { CancellationTokenSource = tokenSource, ChainEndTask = chainEnd }, operation);

            operationObj.Status = OperationStatus.Created;
            operationObj.Name = operation.OperationInfo.Name;
            task.Start();

            return operationObj;
        }
开发者ID:LSTANCZYK,项目名称:devexpress_xaf_aurum,代码行数:49,代码来源:OperationManager.cs

示例4: EnlistOperation

        private static void EnlistOperation( IOperation operation )
        {
            if( enlistment == null && Transaction.Current != null )
            {
                enlistment = new TxfmEnlistment();
                Transaction.Current.EnlistDurable( resourceManagerId, enlistment, EnlistmentOptions.None );
            }

            operation.Execute();

            if( enlistment == null )
            {
                // Not in a transaction.
                operation.Commit();
            }
            else
            {
                enlistment.AddOperation( operation );
            }
        }
开发者ID:dbremner,项目名称:TransactionalFileManager,代码行数:20,代码来源:Txfm.cs


注:本文中的IOperation.Execute方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。