internal void Populate() { if (SynchronizationContext.Current == null) { SynchronizationContext.SetSynchronizationContext(new SynchronizationContext()); } Task.Factory.StartNew( delegate { var modSources = ModCompile.FindModSources(); var modFiles = ModOrganizer.FindMods(); return(Tuple.Create(modSources, modFiles)); }) .ContinueWith(task => { var modSources = task.Result.Item1; var modFiles = task.Result.Item2; foreach (string sourcePath in modSources) { var builtMod = modFiles.SingleOrDefault(m => m.Name == Path.GetFileName(sourcePath)); items.Add(new UIModSourceItem(sourcePath, builtMod)); } updateNeeded = true; }, TaskScheduler.FromCurrentSynchronizationContext()); }
public override void OnActivate() { ModCompile.UpdateReferencesFolder(); uIPanel.Append(uiLoader); modList.Clear(); items.Clear(); Populate(); }
public override void OnActivate() { _cts = new CancellationTokenSource(); ModCompile.UpdateReferencesFolder(); _uIPanel.Append(_uiLoader); _modList.Clear(); _items.Clear(); Populate(); }