private void ProcessLobbySessionStart() { LobbyUtils.ResetLobbyData(); Variables.LobbySession = true; if (Variables.OverlayWindow == null) { Variables.OverlayThread = new Thread(() => { Variables.OverlayApp = new Application(); Variables.OverlayWindow = new MainWindow(); Task.Delay(500).ContinueWith(task => Variables.OverlayWindow.UpdateConfiguration(Variables.Config, Variables.LobbySession)); Variables.OverlayWindow.RegisterHotKeyHooks(CopyPlayerStats, CalculateBalancedTeamsRank, CalculateBalancedTeamsTotalGames, CalculateBalancedTeamsWinRatio); Variables.OverlayApp.Run(Variables.OverlayWindow); }); Variables.OverlayThread.SetApartmentState(ApartmentState.STA); Variables.OverlayThread.Start(); } else { Variables.OverlayWindow.UpdateConfiguration(Variables.Config, Variables.LobbySession); } if (Variables.ReplayMode) { Task.Factory.StartNew(() => new NetHookDumpReaderJob()); } else { SteamUtils.CheckNethookPaths(); Task.Delay(5000).ContinueWith(t => SteamUtils.CheckNethookPaths()); //In case NetHook didn't start up fast enough } }