/// <summary> /// Event handler for when the asynchronous create network session /// operation has completed. /// </summary> void CreateSessionOperationCompleted(object sender, OperationCompletedEventArgs e) { try { // End the asynchronous create network session operation. NetworkSession networkSession = NetworkSession.EndCreate(e.AsyncResult); // Create a component that will manage the session we just created. NetworkSessionComponent.Create(ScreenManager, networkSession); // Go to the lobby screen. We pass null as the controlling player, // because the lobby screen accepts input from all local players // who are in the session, not just a single controlling player. ScreenManager.AddScreen(new LobbyScreen(networkSession), null); } catch (Exception exception) { NetworkErrorScreen errorScreen = new NetworkErrorScreen(exception); ScreenManager.AddScreen(errorScreen, ControllingPlayer); } }
/// <summary> /// Event handler for when the asynchronous join-from-invite /// operation has completed. /// </summary> static void JoinInvitedOperationCompleted(object sender, OperationCompletedEventArgs e) { ScreenManager screenManager = ((GameScreen)sender).ScreenManager; try { // End the asynchronous join-from-invite operation. NetworkSession networkSession = NetworkSession.EndJoinInvited(e.AsyncResult); // Create a component that will manage the session we just created. NetworkSessionComponent.Create(screenManager, networkSession); // Go to the lobby screen. screenManager.AddScreen(new LobbyScreen(networkSession), null); } catch (Exception exception) { screenManager.AddScreen(new MainMenuScreen(), null); screenManager.AddScreen(new NetworkErrorScreen(exception), null); } }