public void TestSleep()
        {
            WakeUpCommand      wakeup = new WakeUpCommand();
            ActiveObjectEngine e      = new ActiveObjectEngine();

            // Building multithreaded systems using variations of this technique has been, and will continue to be, a
            // very common practice.Threads of this kind have been known as run - to - completion tasks(RTC);
            // each Command instance runs to completion before the next Command instance can run.The name RTC
            // implies that the Command instances do not block.

            // The fact that the Command instances all run to completion gives RTC threads the interesting advantage
            // that they all share the same runtime stack. Unlike the threads in a traditional multithreaded system,
            // it is not necessary to define or allocate a separate runtime stack for each RTC thread.This can be a
            // powerful advantage in memory - constrained systems with many threads.


            SleepCommand c = new SleepCommand(1000, e, wakeup);

            e.AddCommand(c);
            DateTime start = DateTime.Now;

            e.Run();
            DateTime stop      = DateTime.Now;
            double   sleepTime = (stop - start).TotalMilliseconds;

            Assert.IsTrue(sleepTime >= 1000, "SleepTime " + sleepTime + " expected > 1000");
            Assert.IsTrue(sleepTime <= 1100, "SleepTime " + sleepTime + " expected < 1100");
            Assert.IsTrue(wakeup.executed, "Command Executed");
        }
Example #2
0
 public ViewModelBase()
 {
     this.MainWindow  = Application.Current.MainWindow as MainWindow;
     TogleVisible     = new TogleVisibilityCommand();
     WakeUp           = new WakeUpCommand();
     SetFocus         = new SetFocusCommand();
     StartApplication = new StartApplicationCommand();
 }
Example #3
0
        static void Main(string[] args)
        {
            Command wakeup       = new WakeUpCommand();
            var     e            = new ActiveObjectEngine();
            Command sleepCommand = new SleepCommand(1000, e, wakeup);

            e.addCommand(sleepCommand);
            long start = DateTime.Now.Second;

            e.run();
            long end       = DateTime.Now.Second;
            long sleepTime = end - start;

            Console.WriteLine($"SleepTime is {sleepTime}");
        }
Example #4
0
        public void TestSleep()
        {
            var wakeUp = new WakeUpCommand();
            var e      = new ActiveObjectEngine();
            var c      = new SleepCommand(1000, e, wakeUp);

            e.AddCommand(c);
            var start = DateTime.Now;

            e.Run();
            var stop      = DateTime.Now;
            var sleepTime = (stop - start).TotalMilliseconds;

            Assert.IsTrue(sleepTime >= 1000, $"SleepTime {sleepTime} expected > 1000");
            Assert.IsTrue(sleepTime <= 1100, $"SleepTime {sleepTime} expected < 1100");
            Assert.IsTrue(wakeUp.Executed, "Command executed");
        }
Example #5
0
        public void TestSleep()
        {
            WakeUpCommand      wakeUp       = new WakeUpCommand();
            ActiveObjectEngine objectEngine = new ActiveObjectEngine();
            SleepCommand       sleep        = new SleepCommand(1000, objectEngine, wakeUp);

            objectEngine.AddCommand(sleep);
            DateTime start = DateTime.Now;

            objectEngine.Run();
            DateTime stop      = DateTime.Now;
            double   sleepTime = (stop - start).TotalMilliseconds;

            Assert.IsTrue(sleepTime >= 1000, "SleepTime " + sleepTime + " exepcted > 1000");
            Assert.IsTrue(sleepTime <= 1100, "SleepTime " + sleepTime + " exepcted < 1100");
            Assert.IsTrue(wakeUp.executed, "Command Executed");
        }
Example #6
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);
        }