public void RefreshPastRuns(ProjectEditingSession session) { if (PreviousRuns == null) { PreviousRuns = new List <PreviousRun>(); } else { PreviousRuns.Clear(); } Task.Factory.StartNew(() => { var list = new List <PreviousRun>(); PreviousRuns.Clear(); foreach (var pastRun in session.GetPreviousRuns()) { DirectoryInfo info = new DirectoryInfo(pastRun); list.Add(new PreviousRun() { Name = info.Name, Path = pastRun, TimeStamp = info.CreationTime.ToString() }); } lock (PreviousRuns) { PreviousRuns.AddRange(list); } ModelHelper.PropertyChanged(PropertyChanged, this, "PreviousRuns"); }); }