static void Main(string[] args) { Console.CancelKeyPress += OnCancel; UpdateDeltaLoop updateLoop = new UpdateDeltaLoop(delegate(double deltaTime) { ServiceLocator.GetService <IInputEngine>()?.UpdateControllers(); foreach (Window w in windows) { w.UpdateWindow(); w.UpdateStates(deltaTime); } }, 120.0d); UpdateDeltaLoop drawLoop = new UpdateDeltaLoop(delegate() { foreach (Window w in windows) { w.DrawGraphics(); } }, 60.0d); ThreadPool.QueueUserWorkItem(delegate(object state) { //Audio(); Input(); //Graphics(); ThreadUtil.PreventSystemSleep(); foreach (Window w in windows) { w.Closed += OnWindowClose; } /*do { * ServiceLocator.GetService<IInputEngine>()?.UpdateControllers(); * foreach (Window w in windows) { * w.UpdateWindow(); * w.UpdateStates(1.0d); * } * } while (updating);*/ updateLoop.Start(); }); ThreadPool.QueueUserWorkItem(delegate(object state) { /*do { * foreach (Window w in windows) { * w.DrawGraphics(); * } * } while (updating);*/ drawLoop.Start(); }); do { Thread.Sleep(50); } while (updating != 0); updateLoop.Stop(); drawLoop.Stop(); Console.WriteLine("Execution stopped."); }