static void Main() { Person anonymous = new Person(); Console.WriteLine("Person 1: name: {0}, age: {1}", anonymous.Name, anonymous.Age); Person peter = new Person("Peter", 19); Console.WriteLine("Person 2: name: {0}, age: {1}", peter.Name, peter.Age); Console.WriteLine(); AlarmClock defaultAlarm = new AlarmClock(); Console.WriteLine("Wake up! It's {0:D2}:{1:D2} o'clock.", defaultAlarm.Hours, defaultAlarm.Minutes); AlarmClock earlyAlarm = new AlarmClock(5, 15); Console.WriteLine("Wake up! It's {0:D2}:{1:D2} o'clock.", earlyAlarm.Hours, earlyAlarm.Minutes); Console.WriteLine(); Point centerPoint = new Point(); centerPoint.Name = "Center of the coordinate system"; Console.WriteLine("First point: ({0},{1}) has name '{2}'", centerPoint.XCoord, centerPoint.YCoord, centerPoint.Name); Point point77 = new Point(7,7); Console.WriteLine("Second point: ({0},{1}) has name '{2}'", point77.XCoord, point77.YCoord, point77.Name); Console.WriteLine(); }
private void Context() { ManualTestingTimer = new ManualTimer(); AdvisorAlarmClock = new AlarmClock(ManualTestingTimer); AdvisorAlarmClock.OnAlarm += (sndr, e) => { AlarmWentOff = true; CurrentTime = e.Time; }; GivenInterval = 100; AdvisorAlarmClock.SetFor(GivenInterval); }
private WaitHandle notifyObject; // Who do notify when object disposed // // Private constructor - used to ensure all constructors initialise // the object in the same way. // private Timer(TimerCallback callback, Object state) { // // Validate the parameters. // if (callback == null) throw new ArgumentNullException("callback"); // // If this is the first timer constructed allocate resources // for the timer thread and start it. // lock (typeof(Timer)) { if (Timer.alarmClock == null) { if (!Thread.CanStartThreads()) throw new NotImplementedException(); Timer.alarmClock = new AlarmClock(); Timer.disposeQueue = new System.Collections.Queue(); Timer.now = Timer.UtcMilliseconds(); Timer.threadWakeup = new AutoResetEvent(false); Timer.timerThread = new Thread(new ThreadStart(Timer.Run)); Timer.timerThread.IsBackground = true; Timer.timerThread.Start(); } } // // Initialize the timer state. // lock (this) { this.disposed = false; this.alarm = Timer.alarmClock.CreateAlarm( new AlarmClock.AlarmExpiredHandler(this.fireTimer)); this.callback = callback; this.state = state; } }
static void Main(string[] args) { var d = new Dispatcher(); var midgetHouse = new MidgetHouse(d); d.Subscribe<OrderPlaced>(midgetHouse); d.Subscribe<DodgyOrderPlaced>(midgetHouse); var manager = new Manager(); var cashier = new Cashier(d); var ass = new AssMan(d); var cookDispatcher = new SmartDispatcher<CookFood>(); var cookTtlGate = new TimeToLiveGate<CookFood>(cookDispatcher); var cookQueudHandler = new QueuedHandler<CookFood>(cookTtlGate, "cook ttl gate"); var cookLimiter = new Limiter<CookFood>(cookQueudHandler); //var cookScrewsUp = new ScrewsUp<CookFood>(cookLimiter); var alarmClock = new AlarmClock(d); var messageMonitor = new MessageMonitor(d); var fmm = new FilePerOrderMonitor(d); d.Subscribe(alarmClock); d.Subscribe(cookLimiter); d.Subscribe(ass); d.Subscribe(cashier); d.Subscribe(manager); d.Subscribe<OrderPlaced>(messageMonitor); d.Subscribe<DodgyOrderPlaced>(messageMonitor); d.Subscribe<OrderPlaced>(fmm); d.Subscribe<DodgyOrderPlaced>(fmm); var cookQueudHandler1 = new QueuedHandler<CookFood>(new Cook(d, 10000), "c1"); cookDispatcher.AddHandler(cookQueudHandler1); var cookQueudHandler2 = new QueuedHandler<CookFood>(new Cook(d, 5000), "c2"); cookDispatcher.AddHandler(cookQueudHandler2); var cookQueudHandler3 = new QueuedHandler<CookFood>(new Cook(d, 100), "c3"); cookDispatcher.AddHandler(cookQueudHandler3); var queueMonitor = new QueueMonitor(new IAmMonitored[] {cookQueudHandler1, cookQueudHandler2, cookQueudHandler3, cookQueudHandler,d.QueudHandler}); //Cook cook = new Cook(ass); var waiter = new Waiter(d); cookQueudHandler1.Start(); cookQueudHandler2.Start(); cookQueudHandler3.Start(); cookQueudHandler.Start(); d.Start(); alarmClock.Start(); queueMonitor.Start(); new Thread(TryPay).Start(cashier); Random r = new Random(); for (int i = 0; i < 500; i++) { Guid orderNumber; if (r.Next()%2 == 0) { orderNumber = waiter.PlaceDodgyOrder(new[] {Tuple.Create("Burger", 1)}, 15); } else { orderNumber = waiter.PlaceOrder(new[] { Tuple.Create("Burger", 1) }, 15); } if(i > 2)Thread.Sleep(2000); orders.TryAdd(orderNumber, null); } //var orderNumber = waiter.PlaceOrder(new[] {Tuple.Create("Burger", 1)}, 15); //cashier.PayForOrder(orderNumber); Console.ReadLine(); }
/// <summary>Create a new Alarm.</summary> public Alarm(AlarmClock alarmClock, AlarmExpiredHandler alarmExpired) { lock (this) { this.alarmClock = alarmClock; this.AlarmExpired = alarmExpired; this.ExpiryTime = DISABLED; } }
public void Start() { alarm = new AlarmClock(); alarm.OnAlarm += new AlarmClockEventHandler(alarm_OnAlarm); alarm.Start(1000); }
public Alarm(AlarmClock alarmClock) { _coolDown = false; _alarmClock = alarmClock; }
public Alarm() { _coolDown = false; _alarmClock = new AlarmClock(DateTime.Now.AddMinutes(-1), DateTime.Now.AddMinutes(-1)); }
public SuspectCustomerProcess(Handles <Messages.PrepareFood> kitchen, AssistantManager assistantManager, Cashier cashier, EnterpriseExcel reporting, AlarmClock alarmClock) { this.assistantManager = assistantManager; this.cashier = cashier; this.reporting = reporting; this.alarmClock = alarmClock; this.kitchen = kitchen; }