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); } } }
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); } } }
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(); }
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(); }
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); }