//Attempt to optimise loading of games by running it in the background thread instead of the UI thread private void BWPopulateGameList_DoWork(object sender, DoWorkEventArgs e) { object[] args = e.Argument as object[]; gamesToBeDisplayed.Clear(); if ((bool)args[0]) { foreach (Games g in ((Catalogue)args[1]).GetContainer()) { gamesToBeDisplayed.Add(g); } } else { foreach (CheckBox c in allGenreCheckbox) { if (c.Checked == true) { GenreContainer genreContainer = (GenreContainer)c.Tag; foreach (Games g in genreContainer.GetContainer()) { gamesToBeDisplayed.Add(g); } } } } }
public void PopulateGenreList(GenreContainer genre) { foreach (Games game in genre.GetContainer()) { gamesListPanel.Controls.Add(ControlsGenerator.GenerateGamePanel(game)); } }