Beispiel #1
0
        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.");
        }