예제 #1
0
        private static void RunMPC(ITransmitter transmitter, IGoalUtilizer utilizer)
        {
            utilizer.Reset();
            var generator = new GoalGenerator();
            IList <Producer> producers = new List <Producer>()
            {
                new Producer(generator, transmitter)
            };
            IList <Consumer> consumers = new List <Consumer>();

            consumers.Add(new Consumer(utilizer, transmitter));
            consumers.Add(new Consumer(utilizer, transmitter));
            consumers.Add(new Consumer(utilizer, transmitter));
            GoalManager manager = new GoalManager(producers, consumers);

            Stopwatch stopWatchBody = new Stopwatch();

            stopWatchBody.Start();

            manager.Run();
            Thread.Sleep(5000);//22 000 000
            manager.Stop();

            stopWatchBody.Stop();
            string    elapsedTimeBody = ConvertTSToString(stopWatchBody.Elapsed);
            Stopwatch stopWatchFinish = new Stopwatch();

            stopWatchFinish.Start();
            var isOk = utilizer.WasUtilizeSuccessful();

            stopWatchFinish.Stop();
            string elapsedTimeFinish = ConvertTSToString(stopWatchFinish.Elapsed);

            Console.WriteLine($"{transmitter.GetType().Name.PadRight(30)} isOk {isOk} nGoals: {generator.Counter} BodyTime: {elapsedTimeBody} FinishTime: {elapsedTimeFinish}");
        }
예제 #2
0
 public void Initialize()
 {
     _sampleGoal1 = GoalGenerator.GenerateGoal1();
     _sampleGoal2 = GoalGenerator.GenerateGoal2();
     _manyGoals   = GoalGenerator.GenerateManyGoals();
 }