diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-04-19 16:43:09 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-04-19 16:43:09 -0400 |
| commit | de038ac029f5c5a8203df8e50083608ad30feb36 (patch) | |
| tree | 57dfd06865035b581d50dde0d9c6af0b2cea585f /MediaBrowser.Controller/Entities/Folder.cs | |
| parent | eb612bd303b1ff7adf44f38496448b6064c465fe (diff) | |
faster progress reporting during library scan
Diffstat (limited to 'MediaBrowser.Controller/Entities/Folder.cs')
| -rw-r--r-- | MediaBrowser.Controller/Entities/Folder.cs | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 7253825a8c..2b924ea884 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -653,7 +653,7 @@ namespace MediaBrowser.Controller.Entities { var list = children.ToList(); - var percentages = new ConcurrentDictionary<Guid, double>(list.Select(i => new KeyValuePair<Guid, double>(i.Item1.Id, 0))); + var percentages = new Dictionary<Guid, double>(); var tasks = new List<Task>(); @@ -695,24 +695,30 @@ namespace MediaBrowser.Controller.Entities innerProgress.RegisterAction(p => { - percentages.TryUpdate(child.Id, p / 100, percentages[child.Id]); + lock (percentages) + { + percentages[child.Id] = p/100; - var percent = percentages.Values.Sum(); - percent /= list.Count; + var percent = percentages.Values.Sum(); + percent /= list.Count; - progress.Report((90 * percent) + 10); + progress.Report((90 * percent) + 10); + } }); await ((Folder)child).ValidateChildren(innerProgress, cancellationToken, recursive).ConfigureAwait(false); } else { - percentages.TryUpdate(child.Id, 1, percentages[child.Id]); + lock (percentages) + { + percentages[child.Id] = 1; - var percent = percentages.Values.Sum(); - percent /= list.Count; + var percent = percentages.Values.Sum(); + percent /= list.Count; - progress.Report((90 * percent) + 10); + progress.Report((90 * percent) + 10); + } } })); } |
