Example #1
0
        public void Excute()
        {
            DateTime currentTime = DateTime.Now;

            if (!started)
            {
                started   = true;
                startTime = currentTime;
                engine.AddCommand(this);
            }
            else
            {
                TimeSpan elapsedTime = currentTime - startTime;
                if (elapsedTime.TotalMilliseconds < sleepTime)
                {
                    engine.AddCommand(this);
                }
                else
                {
                    engine.AddCommand(wakeUpCommand);
                }
            }
        }
Example #2
0
        public void Execute()
        {
            DateTime currentTiem = DateTime.Now;

            if (!started)
            {
                started   = true;
                startTime = currentTiem;
                activeObjectEngine.AddCommand(this);
            }
            else
            {
                TimeSpan span = currentTiem - startTime;
                if (span.TotalMilliseconds < sleepTime)
                {
                    activeObjectEngine.AddCommand(this);
                }
                else
                {
                    activeObjectEngine.AddCommand(wakeUp);
                }
            }
        }
Example #3
0
        static void Main(string[] args)
        {
            engine.AddCommand(new Program(1, '1'));
            engine.AddCommand(new Program(3, '3'));
            engine.AddCommand(new Program(5, '5'));
            engine.AddCommand(new Program(7, '7'));
            ICommand stopCommand = new StopCommand();

            engine.AddCommand(new SleepCommand(10000, engine, stopCommand));
            engine.Run();
        }
Example #4
0
        static void Main(string[] args)
        {
            ActiveObjectEngine.AddCommand(new DelayedTyper(100, '1'));
            ActiveObjectEngine.AddCommand(new DelayedTyper(300, '3'));
            ActiveObjectEngine.AddCommand(new DelayedTyper(500, '5'));
            ActiveObjectEngine.AddCommand(new DelayedTyper(700, '7'));

            Command command = new StopCommand();

            ActiveObjectEngine.AddCommand(new SleepCommand(20000, ActiveObjectEngine, command));
            ActiveObjectEngine.Run();
        }
Example #5
0
        public void Testsleep()
        {
            WakeUpCommand      wakeUp             = new WakeUpCommand();
            ActiveObjectEngine activeObjectEngine = new ActiveObjectEngine();
            SleepCommand       sleepCommand       = new SleepCommand(1000, activeObjectEngine, wakeUp);

            activeObjectEngine.AddCommand(sleepCommand);

            DateTime start = DateTime.Now;

            activeObjectEngine.Run();
            DateTime end = DateTime.Now;

            double sleepTime = (end - start).TotalMilliseconds;

            Assert.True(sleepTime >= 1000, $"sleep time {sleepTime} expected > 1000");
            //Assert.True(sleepTime <= 1000, $"sleep time {sleepTime} expected < 1000");
            Assert.True(wakeUp.excuted);
        }