Exemplo n.º 1
0
        private static Task Run(IComponentContext c)
        {
            #region DI_Load
            var broker        = c.Resolve <EventBroker>();
            var begin         = DateTimeOffset.Parse("2019-01-01");
            var timeScheduler = new ModelTimeScheduler(ModelTimeStep.Day, begin);

            var manager = c.Resolve <Manager>(new NamedParameter("timeScheduler", timeScheduler));
            var dev1    = c.Resolve <Developer>(
                new NamedParameter("timeScheduler", timeScheduler),
                new NamedParameter("name", "Борис"));
            var dev2 = c.Resolve <Developer>(
                new NamedParameter("timeScheduler", timeScheduler),
                new NamedParameter("name", "Дмитрий"));
            var dev3 = c.Resolve <Developer>(
                new NamedParameter("timeScheduler", timeScheduler),
                new NamedParameter("name", "Илья"));
            #endregion

            var loop = new EventLoop(timeScheduler, broker);

            var a = ModelTimeSpan.FromModelTimeUnits(3);

            timeScheduler.Schedule(ModelTimeSpan.FromModelTimeUnits(3), () =>
            {
                Console.WriteLine("Случается на 3 шаге модельного времени");
            });
            return(loop.Run(time =>
            {
                time.OnUniformTestPassed(t =>
                {
                    manager.GiveNewTaskToTeam("'Важная задача'");
                }, density: 0.5);
            }, 15));
        }
Exemplo n.º 2
0
        public void DevelopTask(string taskToDo)
        {
            Console.WriteLine($"{Name} начал делать {taskToDo} в {TimeScheduler.CurrentTime}");
            var abort = TimeScheduler.Schedule(ModelTimeSpan.FromModelTimeUnits(3),
                                               () => { Console.WriteLine($"{Name} завершил работу над {taskToDo}"); });

            AbortCurrentJob = TimeScheduler.Schedule(ModelTimeSpan.FromModelTimeUnits(5),
                                                     () =>
            {
                Console.WriteLine($"Остановлена работа над {taskToDo} в {TimeScheduler.CurrentTime}");
            });
        }