protected override async Task OnCompleted()
        {
            await base.OnCompleted().ConfigureAwait(false);

            //We don't need a lock for this so not performing in OnRun().
            var names = new HashSet <string>(StringComparer.OrdinalIgnoreCase);

            names.AddRange(PlaylistTaskBase.UpdateLibraryCache(this.LibraryCache, this.PlaylistItems, null));
            names.AddRange(PlaylistTaskBase.UpdatePlaylistCache(this.PlaylistCache, this.PlaylistItems, null));
            await this.SignalEmitter.Send(new Signal(this, CommonSignals.MetaDataUpdated, names)).ConfigureAwait(false);
        }
        protected override async Task OnStarted()
        {
            if (this.Visible)
            {
                this.Name     = "Saving meta data";
                this.Position = 0;
                this.Count    = this.PlaylistItems.Count();
            }
            await base.OnStarted().ConfigureAwait(false);

            //We don't need a lock for this so not waiting for OnRun().
            var names = new HashSet <string>(StringComparer.OrdinalIgnoreCase);

            names.AddRange(PlaylistTaskBase.UpdateLibraryCache(this.LibraryCache, this.PlaylistItems, this.Names));
            names.AddRange(PlaylistTaskBase.UpdatePlaylistCache(this.PlaylistCache, this.PlaylistItems, this.Names));
        }