Example #1
0
        public StrategyExecutionResult ExecuteMany(IStrategy strategy, int dataCount, int executionCount)
        {
            List <StrategyExecutionResult> results = new List <StrategyExecutionResult>();

            for (int i = 0; i < executionCount; i++)
            {
                results.Add(Execute(strategy, dataCount));
            }
            StrategyExecutionResult result = new StrategyExecutionResult();

            result.Error         = results.Select(r => r.Error).Where(e => e.Length > 0).DefaultIfEmpty(string.Empty).FirstOrDefault();
            result.ElapsedMillis = (long)results.Select(r => r.ElapsedMillis).Average();
            return(result);
        }
Example #2
0
        static void Main(string[] args)
        {
            int dataCount      = 100;
            int executionCount = 10;

            StrategyExecutor executor = new StrategyExecutor();

            StrategyExecutionResult resultStrategyParallelForWithLock  = executor.ExecuteMany(new StrategyParallelForWithLock(), dataCount, executionCount);
            StrategyExecutionResult resultStrategyParallelForWithQueue = executor.ExecuteMany(new StrategyParallelForWithQueue(), dataCount, executionCount);

            Console.Out.WriteLine("--------------------");
            Console.Out.WriteLine("StrategyParallelForWithLock : " + resultStrategyParallelForWithLock);
            Console.Out.WriteLine("StrategyParallelForWithQueue : " + resultStrategyParallelForWithQueue);

            Console.In.ReadLine();
        }