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


C# IOperation.Dispose方法代码示例

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


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

示例1: 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


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