Is it considered poor programming to do this with xna components?
So I created my own Menu System that is event driven.

In order to have a loading screen and multithreaded loading to work, I devised this sort of implementation:

    #region Loading Screen Stuff
                if (_game != null) //Let's check if the game is done loading.
                {
                    _gameLoaded = _game.DoneLoading;
                }
    
                if (!_gameLoaded && _gameActive) //This means the game is loading still, therefore the loading screen should be active.
                {
                    _gameScreenList[2].UpdateMenu();
                }
    
                if (_gameScreenList[2].CurrentState == GameScreen.State.Shown && !_gameActive) //The loading screen was selected.
                {
                     Components.Add(_game = new ParadoxGame(this));
                     _game.Initialize(); //Initializes the Game so that the loading can begin.
                     _gameActive = true;
                }
                #endregion

And in the XNA Game Component that contains the actual game, in the LoadContent method I simply created a new Thread that calls another method(ThreadLoad) that has all the actual loading.

I also have a boolean variable called Done Loading in the XNA Game Component that is set to true at the end of the ThreadLoad.

I am wondering if this is a poor implementation.

Thank you,
Robert Gawdzik
Is it considered poor programming to do this with xna components?
===

So I created my own Menu System that is event driven.

In order to have a loading screen and multithreaded loading to work, I devised this sort of implementation:

    #region Loading Screen Stuff
                if (_game != null) //Let's check if the game is done loading.
                {
                    _gameLoaded = _game.DoneLoading;
                }
    
                if (!_gameLoaded && _gameActive) //This means the game is loading still, therefore the loading screen should be active.
                {
                    _gameScreenList[2].UpdateMenu();
                }
    
                if (_gameScreenList[2].CurrentState == GameScreen.State.Shown && !_gameActive) //The loading screen was selected.
                {
                     Components.Add(_game = new ParadoxGame(this));
                     _game.Initialize(); //Initializes the Game so that the loading can begin.
                     _gameActive = true;
                }
                #endregion

And in the XNA Game Component that contains the actual game, in the LoadContent method I simply created a new Thread that calls another method(ThreadLoad) that has all the actual loading.

I also have a boolean variable called Done Loading in the XNA Game Component that is set to true at the end of the ThreadLoad.

I am wondering if this is a poor implementation.

Thank you,
Robert Gawdzik