Beispiel #1
0
        public TaskExecute(List <ErpTaskStep> steps, int numberOfQueues, int actionId, DateTime date)
        {
            Steps = new BlockingCollection <Task>();
            if (numberOfQueues > 1)
            {
                ErpTaskStep.ErpTaskStepComparer c = new ErpTaskStep.ErpTaskStepComparer();
                steps.Sort(c);
                for (int i = 0; i < numberOfQueues; i++)
                {
                    Queues.Add(new BlockingCollection <Task>());
                }

                foreach (var step in steps)
                {
                    //foreach(var queue in Queues)
                    //{
                    Steps.Add(new Task(() => ExecuteTask(actionId, step, date)));
                    //}
                }
                Steps.CompleteAdding();
            }
            else
            {
                // No parallel runs.
                foreach (var step in steps)
                {
                    ExecuteTask(actionId, step, date);
                    System.Threading.Thread.Sleep(2000);
                }
                Steps.CompleteAdding();
            }
        }
Beispiel #2
0
        public AxTaskExecute(List <ErpTaskStep> steps, int numberOfQueues, int actionId, DateTime date)
        {
            Steps = new BlockingCollection <Task>();
            ErpTaskStep.ErpTaskStepComparer c = new ErpTaskStep.ErpTaskStepComparer();
            steps.Sort(c);
            for (int i = 0; i < numberOfQueues; i++)
            {
                Queues.Add(new BlockingCollection <Task>());
            }

            foreach (var step in steps)
            {
                //foreach(var queue in Queues)
                //{
                Steps.Add(new Task(() => ExecuteTask(actionId, step, date)));
                //}
            }
            Steps.CompleteAdding();
        }