protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);

            if (disposing)
            {
            #if WINDOWS
                bool locked = false;
            #elif XBOX
                Monitor.Enter(this);
            #endif
                try
                {
            #if WINDOWS
                    Monitor.Enter(this, ref locked);
            #endif
                    _graphicsEngineService.Dispose();
                    _assetEngineService.Dispose();
                }
                finally
                {
                    _graphicsEngineService = null;
                    _assetEngineService = null;
            #if WINDOWS
                    if (locked)
                        Monitor.Exit(this);
            #elif XBOX
                    Monitor.Exit(this);
            #endif
                }
            }
        }
        /// <summary>
        /// Initialize the game
        /// </summary>
        protected override void Initialize()
        {
            _assetEngineService = new AssetEngineService(this);
            _graphicsEngineService = new GraphicsEngineService(this);
            _inputService = new InputService(this);

            base.Initialize();
        }