Esempio n. 1
0
        public void AbortTask(Guid taskId)
        {
            SlaveTask slaveTask = null;

            slaveTasksLocker.EnterUpgradeableReadLock();
            try {
                if (!slaveTasks.ContainsKey(taskId))
                {
                    throw new TaskNotRunningException(taskId);
                }
                slaveTask = slaveTasks[taskId].Task;
                if (!slaveTask.IsPrepared)
                {
                    throw new AppDomainNotCreatedException();
                }
                RemoveSlaveTask(taskId, slaveTask);
            }
            finally { slaveTasksLocker.ExitUpgradeableReadLock(); }
            slaveTask.DisposeAppDomain();
            SlaveStatusInfo.IncrementTasksAborted();
            OnTaskAborted(slaveTask);
        }