예제 #1
0
        public static async Task FetchAsync(string artist, string album, string filePath, bool online = true)
        {
            var  tname = ThumbnailManager.FormatAlbumCacheName(artist, album);
            Task task;
            bool remove;

            lock (_downloadTasks)
            {
                if (remove = !_downloadTasks.TryGetValue(tname, out task))
                {
                    task = InternalFetchAlbumAsync(artist, album, filePath, online);
                    _downloadTasks.Add(tname, task);
                }
            }
            await task;

            if (remove)
            {
                lock (_downloadTasks)
                {
                    _downloadTasks.Remove(tname);
                }
            }
        }
예제 #2
0
        public static async void Fetch(string artist, string album, string filePath, bool online = true)
        {
            var  tname = ThumbnailManager.FormatAlbumCacheName(artist, album);
            Task task;

            lock (_downloadTasks)
            {
                if (_downloadTasks.ContainsKey(tname))
                {
                    return;
                }
                else
                {
                    task = InternalFetchAlbumAsync(artist, album, filePath, online);
                    _downloadTasks.Add(tname, task);
                }
            }
            await task;

            lock (_downloadTasks)
            {
                _downloadTasks.Remove(tname);
            }
        }